https://www.acmicpc.net/problem/21608
구현 문제다. 문제에서 제시한 조건에 맞는 탐색을 통해 구현하면 된다.
풀이
입력이 주어지면 해당 학생의 번호와 좋아하는 사람의 번호들을 n*n개의 배열에 담아 저장한다. 마지막에 행복도 측정을 위해 한번 더 사용해야 하기 때문이다. 매번 정보가 입력될 때마다 교실을 행 - 열 순서로 탐색하면서 아직 배치가 되지 않은 자리에 대해서 인접한 좋아하는 사람의 개수와 인접한 빈 공간의 개수를 반환하는 cntLovers(x:Int, y:Int, lovers:[Int]) 함수를 통해 정보를 반환받은 후 문제에서 제시된 조건에 맞게 입력된 학생의 번호를 담아내야 할 좌표를 갱신한다. 이후 탐색이 끝나면 갱신된 좌표에 학생 번호를 입력한 후 다음 입력을 받는다.
마지막에 행복도 측정을 위해 한번 더 교실을 돌면서 해당 좌석의 번호에 해당하는 cntLovers(x:Int, y:Int, lovers:[Int]) 함수를 통해 행복도를 측정하면 된다.
정답 코드
'Problem Solving > BOJ' 카테고리의 다른 글
[21610] 마법사 상어와 비바라기 (0) | 2022.11.11 |
---|---|
[14499] 주사위 굴리기 (0) | 2022.11.10 |
[14891] 톱니바퀴 (0) | 2022.11.09 |
[13335] 트럭 (0) | 2022.11.07 |
[1245] 농장 관리 (0) | 2022.11.04 |