1. 문제에 대한 이해
- 우리가 풀어야 할 문제는 무엇인가?
- N명의 모험가에 대한 정보가 주어졌을 때, 여행을 떠날 수 있는 그룹 수의 최댓값 구하라 - 주어진 자료는 무엇인가?
- N명의 모험가들의 공포도가 담긴 배열 - 조건은 무엇인가?
- 몇명의 모험가는 마을에 남아있어도 된다.
2. 계획
- 주어진 배열을 오름차순으로 나열한다.
- 이 배열을 순회하면서 member+1을 해준다.
- 현재 요소보다 member의 수가 많아지면 groups+1을 해주고 member는 다시 초기화한다.
- 2,3번을 반복한다.
3. 실행
- 풀이 계획을 실행하고, 각 단계가 올바른지 점검하라.
const solution = (arr) => {
const numbers = arr.sort((a, b) => a - b);
let groups = 0;
let members = 0;
for (let num of numbers) {
members++;
if (members >= num) {
groups++;
members = 0
}
}
return groups;
}
test('countGroup', () => {
expect(solution([2, 3, 1, 2, 2])).toEqual(2)
});
4. 반성
- while문이나 재귀를 사용해볼 수도 있을 것 같은데 종료 조건을 어떻게 설정해야할지 모르겠다,,
'코테연습' 카테고리의 다른 글
133. 이것이 코딩 테스트다 : 11장 문자열 뒤집기 Javascript (0) | 2022.09.14 |
---|---|
132. 이것이 코딩 테스트다 : 11장 곱하기 혹은 더하기 Javascript (0) | 2022.09.14 |
130. 숫자의 표현 Javascript (0) | 2022.09.13 |
129. 이상한 문자 만들기 Javascript (0) | 2022.09.12 |
128. 약수의합 Javascript (0) | 2022.09.12 |
댓글