본문 바로가기

프로그래머스2

[프로그래머스/level2] 귤 고르기 문제 풀이과정 문제에서 가장 주의해야 할 점은 지금까지 담은 귤의 개수가 k개에 꼭 맞게 담아야 하는 게 아니라, k개 이상일 때의 서로 다른 종류의 수의 최솟값을 찾아야 한다는 것이다. 입출력 예 #1에 나온 것처럼 k가 6일 때, 넣을 귤의 개수를 딱 6개로 맞춰야 할 필요가 없고 개수가 k개를 넘어가되 종류의 수가 최소이기만 하면 된다. 입출력 예 #1로 더 자세하게 설명하면, tangerine = [1, 3, 2, 5, 4, 5, 2, 3] 일 때 수확한 귤 8개 중, 크기가 2인 귤 2개 + 크기가 3인 귤 2개 + 크기가 5인 귤 2개 = 6개 = k (귤 종류는 3가지로 정답) tangerine = [1, 3, 2, 5, 5, 4, 5, 2, 3] 일 때 수확한 귤 9개 중, 크기가 2인 귤.. 2024. 1. 24.
[프로그래머스/level2] 최댓값과 최솟값 문제 풀이과정 양수, 0, 음수 모두를 고려해서 최솟값과 최댓값을 찾아야 하는 문제이다. 고려해야 할 사항은 다음과 같다. 1. string으로 주어지는 문자열을 C++에서 어떻게 split할 것인가? 2. 최댓값/최소값을 어떻게 구별할 것인가? 3. 문자열과 숫자 간 변환을 어떻게 할 것인가? C++에서 공백을 기준으로 문자를 나누는 방법은 크게 substr()을 사용하는 방법과 stream을 사용하는 방법이 있다. 필자는 stream을 사용하였다. vector에서 최대/최솟값을 알아내는 방법은 max()와 min()함수를 사용하는 방법, sort()로 정렬해서 찾아내는 방법, max_element()와 min_element()를 사용하는 방법 등 매우 다양하다. sort()로 정렬할 때에는 정렬된 v.. 2024. 1. 17.