원판을 회전시킨다음 인접한 같은 숫자를 지우고 남은 수의 합을 구하는 구현 문제이다.
- n, m, t : 최대 반지름이 n 이고 m 개의 정수가 적힌 원판을 t 번 회전
- n 개의 줄에 원판에 적힌 수
- t 개의 줄에 회전 방법 : x 의 베수인 원판을 d(0이면 시계 1이면 시계반대)방향으로 k 칸 회전
- 입력값 받기
- 함수 구현
rotate
: i번째 원판을 d 방향으로 k 칸 회전하는 함수findAdjSameNumber
: 인접하면서 같은 수를 찾아서 지우고 지운게 있으면 true, 없으면 false를 반환하는 함수isNotAdjSmaeNumber
: 원판에 적힌 모든 수의 평균을 구하고 평균보다 큰 수는 1을 빼고 작은 수는 1을 더하는 함수
- t개의 회전 방법 만큼 반복한다.
- n까지 x의 배수 만큼 반복하면서
rotate
함수를 호출한다. - 모든 원판에 대해서
findAdjSameNumber
함수를 호출한다. - (2)를 모두 수행한 후 인접한 같은 숫자가 하나도 없으면
isNotAdjSmaeNumber
함수를 호출한다.
- n까지 x의 배수 만큼 반복하면서
- 원판에 남은 모든 수의 합을 구해서 반환한다.
- 하나의 회전 방법 마다 회전, 인접한 같은 숫자 찾기, 없으면 평균을 기준으로 덧셈뺄셈을 수행해야 하는데 함수를 잘못 위치 시켰다.
- 원판을 회전시키고 인접한 같은 숫자를 찾을 때
visited
배열을 초기화 시켜주지 않았다. - 인접한 원판을 찾을 때 (x + nx + m) % m 으로 x - 1 위치에 있는 원판도 확인 해야 된다.