[Programmers] #120813 - 짝수는 싫어요 [Java][C++][Python]
문제 링크 1. 아이디어 정수 n이 주어질 때, n 이하의 홀수를 오름차순으로 모아 배열로 반환하면 되는 문제다. 1부터 시작해 2씩 증가시키며 n을 넘지 않을 때까지 순회하면 조건을 만족하는 값만 오름차순으로 얻어진다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 정수 n이 주어질 때, n 이하의 홀수를 오름차순으로 모아 배열로 반환하면 되는 문제다. 1부터 시작해 2씩 증가시키며 n을 넘지 않을 때까지 순회하면 조건을 만족하는 값만 오름차순으로 얻어진다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 정수 배열 array가 주어질 때 최빈값을 찾되, 최빈값이 여러 개면 -1을 반환하면 되는 문제다. array의 원소가 0 이상 1000 미만으로 제한되므로, 값별 등장 횟수를 크기 1000짜리 배열(또는 해시맵)에 세어두고 가장 큰 카운트를 가진 값을 찾으면 된다. 이때 최댓값 카운트를 가진 값이 둘 이상이면 -1을...
문제 링크 1. 아이디어 정수 배열 array를 크기 순으로 정렬했을 때, 정중앙에 위치하는 값(중앙값)을 구하면 되는 문제다. array의 길이는 항상 홀수이므로, 오름차순 정렬 후 중간 위치의 인덱스에 위치한 값이 바로 중앙값이다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 정수 num1, num2가 주어질 때, num1을 num2로 나눈 나머지를 구하면 되는 간단한 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(1)$ $O(1)$ 3. 코드 풀이 ...
문제 링크 1. 아이디어 $x$로 시작하며 $x$와 $-x$가 번갈아 등장하는 길이 $n$짜리 수열의 합을 구하는 문제다. 인접한 두 항의 합이 $(x) + (-x) = 0$이 된다는 점에서 $n$이 홀수면 마지막 항을 제외한 나머지 항의 합이 0이 되어 모든 항의 합이 $x$가 되고, 짝수면 모든 항의 합이 $0$이 된다. 2. 복잡도...
문제 링크 1. 아이디어 의상 목록 clothes가 주어질 때, 종류별로 최대 1가지씩만 착용하면서 최소 한 개는 입어야 하는 조합의 수를 구하면 되는 문제다. 먼저 해시맵으로 종류별 의상 개수를 셌다. 각 종류마다 “그 종류를 안 입기”와 “그 종류의 의상 중 하나를 입기” 중 하나를 고를 수 있으므로, 종류별 경우의 수는 (해당 종류 의상...
문제 링크 1. 아이디어 참가자 명단 participant와 완주자 명단 completion이 주어질 때, 완주하지 못한 단 한 명의 이름을 찾으면 되는 문제다. 동명이인이 있을 수 있으므로 이름을 단순히 집합으로 비교하면 안 되고, 이름별 등장 횟수를 세야 한다. 해시맵에 participant의 각 이름을 카운트로 더하고 completion...
문제 링크 1. 아이디어 총 $N$마리의 폰켓몬 중 절반($N / 2$마리)을 선택할 때, 가능한 한 많은 종류를 가져가려면 서로 다른 종류의 수와 선택 가능한 마리 수 중 작은 쪽을 고르면 된다. 서로 다른 종류의 수보다 더 많이 골라봐야 어차피 중복이 생기고, 선택 가능한 마리 수보다 많이 가져갈 수도 없기 때문이다. 따라서 해시 집합에 ...
문제 링크 1. 아이디어 정수 a, b가 주어질 때, 두 수의 합을 계산해 a + b = c 형태의 문자열로 출력하면 되는 간단한 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(1)$ $O(1)$ 3. 코...
문제 링크 1. 아이디어 공백으로 구분된 두 문자열 str1, str2를 입력받아 공백 없이 이어붙여 출력하면 되는 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(N)$ ($N$ = str1과 s...