인기도:B(A,B,C), 성공률:높음(낮음,보통,높음), 레벨:1(1~4)
About AntOnAChessboard ¶
어느 날 앨리스라는 개미가 M × M 체스판에 올라갔다. 앨리스는 체스판에 있는 모든 셀을 방문하려고 한다. 그래서 판 한 쪽 구석에서 시작해서 체스판을 한 꺼풀씩 훑어나가기로 했다. 앨리스는 (1, 1)자리부터 움직이기 시작했다. 처음에는 한 칸 위로 올라간 다음, 오른쪽으로 한칸 이동하고, 다시 한 칸 아래로 내려왔다. 그리고 나서 한 칸 오른쪽으로 움직여서 두 칸 위로 올라가고, 두 칸 왼쪽으로 움직였다. 이런 식으로 매번 한 행, 그리고 한 열씩을 움직였다. 예를 들어 앨리스가 25단계를 움직인 경로를 표시해보면 다음과 같다. 여기에서 각 숫자는 앨리스가 각 셀을 방문한 순서를 나타낸다.
앨리스는 여덟 번째 단계에서는 (2, 3) 위치에 있었고, 20번째 단계에서는 (5,4) 위치에 있었다. 단계 수가 주어졌을 때, 체스판이 매우 커서 움직일 수 있는 위치에 제한이 없다고 할 때, 앨리스의 위치를 결정하는 프로그램을 만들어야 한다.
25 | 24 | 23 | 22 | 21 |
10 | 11 | 12 | 13 | 20 |
9 | 8 | 7 | 14 | 19 |
2 | 3 | 6 | 15 | 18 |
1 | 4 | 5 | 16 | 17 |
Input ¶
입력 파일은 여러 줄로 구성되는데, 각 줄마다 단계 번호를 나타내는 정수 N(1 ≤ N ≤ 2 × 10<sup>9</sup>)이 하나씩 입력된다. 0이 입력되면 입력이 종료된다.
Output ¶
입력된 값에 대해 해당 단계에서의 앨리스의 위치 (x,y)를 나타내는 두 정수를 출력한다. x는 열 번호, y는 행 번호를 나타낸다. 두 정수 사이에는 스페이스가 한 개 들어간다.
풀이 ¶
작성자 | 사용언어 | 개발시간 | 코드 |
하기웅 | C++ | 40분 | AntOnAChessboard/하기웅 |
허준수 | C++ | ? | AndOnAChessBoard/허준수 |
문보창 | C++ | 1시간 | AntOnAChessboard/문보창 |
김상섭 | C++ | 많이..ㅡㅜ | AntOnAChessboard/김상섭 |
조현태 | C++ | ? | AntOnAChessboard/조현태 |