코딩,문제풀이/SWExpertAcademy
1210. [S/W 문제해결 기본] 2일차 - Ladder1(D4)
DdoubleJ
2018. 7. 18. 11:41
X지점의 좌표를 먼저 기록해 놓고
한칸씩 위로 올라가면서 출발 지점을 찾는다.
올라갈 때, 사다리의 오른쪽이나 왼쪽의 길이 있으면 해당 길로 이동한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include <stdio.h> int main(void) { for (int z = 1; z <= 10; z++) { int n; scanf("%d", &n); int map[102][102] = { { 0, }, }; int x, y; for (int i = 1; i <= 100; i++) { for (int j = 1; j <= 100; j++) { scanf("%d", &map[i][j]); if (map[i][j] == 2)//X지점의 좌표를 기록 { x = i; y = j; } } } for (int i = 99; i >= 0; i--) {//맨 아래층부터 한칸씩 위로 올라간다 if (map[i][y + 1] == 1) {//오른쪽에 길이 있으면 갈 수 있을 떄 까지 오른쪽으로 이동 while (true) { y++; if (map[i][y + 1] != 1) break; } } else if (map[i][y - 1] == 1) {//왼쪽에 길이 있으면 갈 수 있을 떄 까지 왼쪽으로 이동 while (true) { y--; if (map[i][y - 1] != 1) break; } } } printf("#%d %d\n", z, y - 1); } return 0; } | cs |