[S/W 문제해결 기본] 2일차 - Ladder1 (D3)
문제 링크
- 사다리 게임 !
- 목표 지점은 맨아래 줄에 2로 표시되어 있고, 그 목표 지점에 도착하기 위해서는 어디서 출발하면 될까? 가 문제이다.
- 첫줄이 맨 아래, 맨 아래줄이 맨 윗줄이 되도록 입력을 반대로 받아서 우리가 알던 사다리 게임으로 풀었다.
- 2에서 시작해서 어디로 도착할까
Solution
package swea;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class p1210 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
for (int t = 1; t <= 10; t++) {
br.readLine();
int[][] map = new int[100][100];
for (int i = 99; i >= 0; i--) {
st = new StringTokenizer(br.readLine(), " ");
for (int j = 0; j < 100; j++) {
map[i][j] = Integer.parseInt(st.nextToken());
}
}
int col = -1;
for (int i = 0; i < 100; i++) {
if (map[0][i] == 2) {
col = i;
break;
}
}
int row = 0;
while (row < 99) {
if (col - 1 >= 0 && map[row][col - 1] == 1) {
for (int i = col - 1; i >= 0; i--) {
if (map[row + 1][i] == 1) {
col = i;
break;
}
}
}
else if (col + 1 < 100 && map[row][col + 1] == 1) {
for (int i = col + 1; i < 100; i++) {
if (map[row + 1][i] == 1) {
col = i;
break;
}
}
}
row++;
}
System.out.println("#" + t + " " + col);
}
}
}