목록Programmers/Level 3 (26)
GitHubSeob

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12907 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 이전에 풀었던 백준 문제와 똑같다. 동적 계획법인 dp를 이용해 풀었다. 동전의 구성은 같지만, 순서만 바꿔서 다른 경우는 같은 경우로 친다. DP[n] = DP[n-원]이 기본 형태이다. 1원은 1원 동전으로 만들 수 있다. 2원은 1원의 경우의 수와 같다. 3원은 1원의 경우의 수와 같다. . 2원은 기존 방법에서 추가로 더한다. 2원은 2원의 동전으로 만들 수 있다. 1+1 3..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/132266 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 BFS문제이다. 목적지가 나와있으므로 목적지를 시작으로 모든 다리를 건너 갈 수 있는 경우를 탐색했다. 다리의 정보가 담긴 roads벡터에서는 {1, 2}, {2, 3} 이런식으로 나와있어 따로 road벡터로 탐색시간을 줄이고자 한다. road벡터에는 road[1]에는 1과 연결된 다리들을, road[2]에는 2와 연결된 다리들을 이런식으로 road[n]에는 n과 연결된 다리의 정..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 작업이 끝나는 최종 시간은 항상 같다. 그리고 최종 시간을 구하는 문제도 아니었다. 작업이 끝난 시간 - 작업을 요청받은 시간을 최소로 만드는 문제이다. 작업이 끝났으면 바로바로 작업을 해야 하므로, 작업의 정보가 들어있는 jobs를 요청 시간 기준으로 오름차순으로 정렬한다. 그다음 작업의 소요시간이 짧은 것이 top에 오는 우선순위 큐를 만들어준다. 작업을 하게 되면 그다음 작업은..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 최소 과정을 찾기 위해 queue를 이용했다. queue에는 바꾼 단어, 바꾼 횟수를 저장한다. 이중 for문을 이용해 비교할 단어를 고르고, 단어를 문자로 쪼개서 현재 단어와 비교한다. 최소 과정을 찾아야 하므로 이미 고른 단어는 다시 못 고르도록 visit벡터를 추가로 이용했다. 같지 않은 부분이 1개라면 바꿀 수 있는 단어다. 바꿀 수 있는 단어가 target이라면 cnt + ..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 우선순위 큐를 이용해 가장 큰 점수가 항상 앞에 오도록 했다. works의 모든 원소의 합이 n이하라면 남은 작업량이 없으므로 answer은 0이 된다. 그 외의 경우는 n만큼 while문을 반복하면서, 우선순위 큐의 top부분을 1 빼고 우선순위에 다시 push한다. n만큼 반복이 끝났으면 야근 지수를 구해야 한다. 우선순위의 top부분을 제곱한 값을 answer에 계속 더하고 p..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 먼저 n이 2일 때, 3일 때 순으로 숫자들을 살펴봤더니, 숫자들끼리의 차이가 작을수록 좋다 곱이 최대가 됐다. n=2, s=9인 경우 4, 5 n=3, s=14인 경우 4, 5, 5 따라서 s를 n으로 나눈 몫이 answer, s는 s - s/n이 된다. 코드 #include #include using namespace std; vector solution(int n, int s)..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 투 포인터로 풀어봤는데 테스트 케이스 몇 개에서 시간 초과가 떴다 질문글을 봤더니 DP로 풀 수 있어서 다시 작성했다. DP[idx][0]에는 항상 최댓값을, DP[idx][1]에는 항상 최솟값을 저장한다. (DP[idx][0]는 DP[idx-1][0] + seq[idx], DP[idx-1][1] + seq[idx], seq[idx] 중 최댓값) (DP[idx][0]는 DP[idx..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/181186 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 n이 4부터는 새로운 방법의 타일링이 안 나오고 기존 모양에 붙여가는 줄 알았는데 아니었다. n이 4일 때, 5일 때, 6일 때,... 계속 나온다. 새로운 방법의 타일링이 나오는 경우는 제외하고 덧붙이는 경우만 먼저 따진다. 기존타일링에 새로운 한 줄을 채울 때) DP [idx-1]의 값과 같다 기존타일링에 새로운 두줄을 채울 때) DP[idx-2]*2의 값과 같다. 기존타일링에..