전체 글

기록, 성장
· Algorithm
출처https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 문제 자체는 이해하기에 어렵지 않다. 데이터 베이스에서 후보키란, 유일성과 최소성을 만족하는 속성이다. 학생들의 인적사항이 주어졌을때, 후보키의 최대 수를 구하면 되는 문제이다.  즉, 유일하기 때문에 식별이 가능해야하고, 불필요한 속성을 포함하지 않고 최소한의 속성만 포함하도록 해야한다. 풀이후보키를 찾기 위해서 특별한 알고리즘이 존재하지 않는다. 결국 모든 속성의 쌍을 보고, 이것이 유일성..
· Algorithm
출처https://school.programmers.co.kr/learn/courses/30/lessons/84021 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 game_board의 빈공간에, table에 주어진 도형을 끼워 맞추는 문제이다. 도형은 회전시킬 수 있지만, 뒤집을 수는 없다.이때, 최대 몇칸을 채워넣을 수 있는지 구하는 문제이다. 풀이BFS를 이용하여 풀 수 있는 문제이다. 상당히 코드도 길고 어려울 수 있지만, 다음과 같은 과정을 따라가면 된다. 먼저, BFS 알고리즘을 이용하여 board의 빈 공간과 table에 주어진 모양을 추출한..
· Algorithm
출처https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 하드 디스크가 요청을 한번에 하나만 수행할 수 있다고 가정하였을 때, 요청 받은 작업이 완료되는 시간의 평균이 가장 적도록 작업 순서를 정하도록 하는 문제이다. 요청 받은 작업이 완료되는 시간이란, 작업 요청부터 시작되기까지 기다린 시간 + 실제 작업 시간 을 말하며 이는 곧 작업이 끝나는 시간 - 작업 요청 시간이다.풀이이 문제를 해결하기 위해서는 두개의 우선순위가 필요하다. 바로 작업 요..
· Algorithm
출처https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명이 길다. 하지만 읽다보면 간단하다.만약 aaaabbbb를 1개 단위로 잘라(a, b) 압축하면, a와 b는 각각 네개이기 때문에 4a4b 이렇게 압축되고 , 2개 단위로 잘라서 (aa,bb) 압축하면 2aa2bb 이 되는데, 이렇게 압축하여 표현한 문자열 중 가장 짧은 것의 길이를 구하는 문제이다. 풀이이 문제는 결국, 1개로 잘라 압축할지 부터 문자열의 길이만큼 잘라 압축할지 (이 경..
· Algorithm
출처https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 노래의 장르와 재생횟수가 주어진다. 총 재생횟수가 많은 장르부터 출력을 하는데, 한 장르당 가장 많이 재생된 곡 2개를 출력한다. 만약 2개가 아니라면 1개만 출력한다. 만약 곡의 재생횟수가 같으면 고유번호 i가 작은 순서로 출력한다. 풀이이 문제는 복잡하게 생각하지 않고, 내가 만약 코딩이 아니라 손으로 직접 이 과정을 수행한다면 어떤 과정을 통해 수행할까? 라는 생각 아래, 다음과 같은 ..
· Nginx
2024.06.28 - [Nginx] - Docker와 nginx를 이용하여 HTTPS 적용, 무중단 배포까지[1] - HTTPS 적용 Docker와 nginx를 이용하여 HTTPS 적용, 무중단 배포까지[1] - HTTPS 적용저는 gcp에서 도커로 Spring, Mysql, Redis를 돌려서 사용중이고, HTTPS 연결을 위해 도메인을 구매하여 gcp자체에 nginx와 certbot을 설치하여 사용중이였습니다. 프로젝트에서 날씨 데이터(과거, 현재)를100cblog.tistory.com 오늘은 이전 포스팅에 이어서, 무중단 배포를 구현해보도록 하겠습니다. 지금 하는 프로젝트가 아직은 실제 서비스 중인 단계는 아니지만, 새로 merge할때마다 배포한 서버가 멈추는게 아쉬워, 말로만 듣던 무중단 배포를..
· Nginx
저는 gcp에서 도커로 Spring, Mysql, Redis를 돌려서 사용중이고, HTTPS 연결을 위해 도메인을 구매하여 gcp자체에 nginx와 certbot을 설치하여 사용중이였습니다. 프로젝트에서 날씨 데이터(과거, 현재)를 가져오고, 게시글 추천 알고리즘을 만들기 위해 기존 스프링 서버에 추가로 Flask서버를 만들게 되었습니다.  기존에는 nginx로 443 포트로 들어오는것을 곧바로 8080번 Spring 포트로 포워딩 해주었습니다. 하지만 이제 포트 5000번 Flask 서버에도 연결 해주어야 합니다.  그런 김에 ngnix 또한 도커 컨테이너로 만들어 같이 관리하고, nginx 설정하는 김에 무중단 배포도 함께 구현하도록 하겠습니다. 구성 계획위 그림과 같이 구성하려고 합니다. 선행되어야..
· Algorithm
출처https://www.acmicpc.net/problem/1253 문제 N개의 수가 주어질 때, 어떤 수가 다른 두 수의 합으로 나타낼 수 있다면 그것을 좋은수라고 하는데, 그 갯수를 구하는 문제이다. 풀이먼저, 당연한 말이지만 주어진 N개의 수가 3개 미만이라면, 다른 두 수가 없기때문에 좋은수가 될 수 없다. 다른 두 수를 이용해 합으로 나타낼 수 있는지 알아보려면, 투 포인터 개념을 활용하여 직접 비교해보는 방법 밖에 없다. 하지만 모든 경우를 다 무작정 비교하게 되면, 기준이 되는 원소를 고르는 for문 하나, i j 인덱스를 통해 합이 성립하는지 확인하기 위한 for문이 2개, 총 3개의 반복문을 가진다. N^3 복잡도를 가진 코드는 매우 비효율적인 알고리즘이며 사용하지 않아야 한다. 그렇기..
PlatinumeOlive
PlatinumeOlive