브루스포스 알고리즘이며, 나는 재귀를 이용하여 문제를 풀었다.
재귀의 base case를 방 배정을 성공(true)하느냐, 실패(false)하느냐로 나눴는데,
꼭 모든 방에 학생을 배분할 필요가 없으므로, 아직 모든 방에 배정하기 전인데 남은 학생 수가 0이 되어도 탈출 조건이 될 수 있다.
<base case>
- 모든 방에 배정 여부와 관계없이 남은 학생이 0명이면, true를 반환
- 마지막 방까지 배정했을 때, 남은 학생이 존재하면 false를 반환
재귀함수를 호출할 때는, 방에 배정하고 남은 학생을 인수로 넘겨준다.
소스코드:
'BOJ' 카테고리의 다른 글
[백준 17779번] 게리맨더링 2 (java) (0) | 2021.02.14 |
---|---|
[백준 16637번] 괄호 추가하기 (java) (0) | 2021.02.14 |
[백준 15904번] UCPC는 무엇의 약자일까? (java) (0) | 2021.02.12 |
[백준 15903번] 카드 합체 놀이 (java) (0) | 2021.02.11 |
[백준 11000번] 강의실 배정 (java) (0) | 2021.02.11 |