[Programmers] 42578번 - 의상 [Java][C++]
문제 링크 1. 아이디어 의상은 종류와 이름 두 가지로 구분되며 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있다. 코니가 최소 한 개의 의상은 입어야 할 경우 코니가 입을 수 있는 서로 다른 옷의 조합의 수를 구해야 한다. 해당 문제는 경우의 수를 구하면 해결할 수 있는데 같은 이름을 가진 의상이 존재하지 않으므로 모든 의상에 대해 각...
문제 링크 1. 아이디어 의상은 종류와 이름 두 가지로 구분되며 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있다. 코니가 최소 한 개의 의상은 입어야 할 경우 코니가 입을 수 있는 서로 다른 옷의 조합의 수를 구해야 한다. 해당 문제는 경우의 수를 구하면 해결할 수 있는데 같은 이름을 가진 의상이 존재하지 않으므로 모든 의상에 대해 각...
문제 링크 1. 아이디어 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return하는 문제로 동명이인이 있을 수 있다는 점에 주의해야 한다. 해시맵을 활용해 마라톤에 참여한 선수의 이름과 수를 세주고, 완주한 선수의 이름과 수...
문제 링크 1. 아이디어 N마리의 폰켓몬 중 N/2마리를 선택할 때 가장 많은 종류의 폰켓몬을 선택하는 문제로 N마리의 폰켓몬의 종류의 수를 구하면 간단하게 해결할 수 있다. N마리의 폰켓몬의 종류의 수가 N/2 보다 크거나 같은 경우 각 종류마다 한 마리씩 N/2 종류를 선택할 수 있으며, N마리의 폰켓몬의 종류의 수가 N/2 보다 작은 경우...
문제 링크 1. 아이디어 정수 number와 n, m에 대해 number가 n의 배수이면서 m의 배수이면 1을 아니면 0을 return 하는 문제로 배수여부는 두 수를 나누었을 때 나머지가 0인지 여부로 판단할 수 있다. 2. 복잡도 시간복잡도 공간복잡도 $O(...
문제 링크 1. 아이디어 전형적인 타일링 문제로 다이나믹 프로그래밍을 활용하면 해결할 수 있다. 가로 길이가 $N$ 인 바닥을 채우는 경우는, 가로 길이가 $N - 2$ 인 바닥을 채우는 경우들에서 오른쪽 끝에 타일을 가로로 배치한 경우이거나, 가로 길이가 $N - 1$ 인 바닥을 채우는 경우들에서 오른쪽 끝에 타일을 세로로 배치한 경우 중 ...
문제 링크 1. 아이디어 정수 num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하는 문제로 num1에 1,000을 먼저 곱한 후 num2로 나누었을 때 몫과 해당 값이 동일함을 활용하면 해결할 수 있다. 2. 복잡도 시간복잡도 공간복잡도 ...
문제 링크 1. 아이디어 정수 num1을 num2로 나눈 몫을 구해주기만 하면 된다. 2. 복잡도 시간복잡도 공간복잡도 $O(1)$ $O(1)$ 3. 코드 풀이 [Java][C++] class Solution { pub...
문제 링크 1. 아이디어 정수 num1과 num2의 곱을 구해주기만 하면 된다. 2. 복잡도 시간복잡도 공간복잡도 $O(1)$ $O(1)$ 3. 코드 풀이 [Java][C++] class Solution { public...
문제 링크 1. 아이디어 정수 num1과 num2의 차를 구해주기만 하면 된다. 2. 복잡도 시간복잡도 공간복잡도 $O(1)$ $O(1)$ 3. 코드 풀이 [Java][C++] class Solution { public...
문제 링크 1. 아이디어 정수 num1과 num2의 합을 구해주기만 하면 된다. 2. 복잡도 시간복잡도 공간복잡도 $O(1)$ $O(1)$ 3. 코드 풀이 [Java][C++] class Solution { public...