https://www.acmicpc.net/problem/25559
문제 요약
- 1 ~ N까지 원형으로 모여있음
- 1번부터 패스패스 해서 한번만 패스 받도록
- 패스는 1 ~ N 까지 가능
접근법
- 예전에 한 번 접했던 문제 같음
- 1이면 1출력
- n이 있기 때문에 n이 중간에 끼면 패스를 두번 받을 것이므로 n은 처음에 있어야 할 것임
- 마지막 사람은 sum(1~n) 만큼 이동을 한 상태이므로 sum(1~n) % n사람일 것임
- 즉 sum(1~n) % n == 0이면 첫번째 사람은 두번 패스를 받을 것임 => -1 출력
- 되는 경우를 만들어 보면
- 일단 한바퀴를 돌고 시작 : n
- n-1, 2, n-2, 4, ... 이런식으로 가면 좋겠음
- 어떤 의미이냐하면, 1번사람을 중심으로 -1, +1, -2, +2 순서대로 하나씩 채워나가보는 것임
- -1, +1 : n-1, 2이동 1의 위치에서 => 이때 마지막 위치는 2임
- -2, +2 : n-3, 4이동 2의 위치에서 => 3의 위치로 이동
- 이런식으로 구성해나가봄