/* 문제설명 */
로그인을 해야만 볼 수 있다.
/* 재귀함수 */
반복되는 부분 >> 만약 왼쪽이나 오른쪽에 길이 있다면, 길이 이어진 곳까지 진행
위로 한 칸 이동
/* 해답코드 */
package samsung;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Ladder1 {
static int start;
static int[][] ladder = new int[100][100];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = null;
int dst = 0;
for(int i=0;i<10;i++) {
//입력받기
br.readLine();
int x,y;
for(x=0;x<100;x++) {
st = new StringTokenizer(br.readLine()," ");
for(y=0;y<100;y++) {
ladder[x][y] = Integer.parseInt(st.nextToken());
if(ladder[x][y]==2) {
dst = y;
}
}
}
goNextFloor(99,dst);
System.out.printf("#%d %d\n",i+1,start);
}
}
public static void goNextFloor(int x,int y) {
//기저조건!
if(x==0) {
start = y;
return;
}
//양옆조사
if(y-1>=0 && ladder[x][y-1]==1) {
while(y-1>=0 && ladder[x][y-1]==1) {
y--;
}
}else if(y+1<100 && ladder[x][y+1]==1) {
while(y+1<100 && ladder[x][y+1]==1) {
y++;
}
}
//다음 층으로 출발!
goNextFloor(x-1,y);
}
}
'Coding Test > SWEA' 카테고리의 다른 글
[SWEA][1251]하나로 (0) | 2021.08.25 |
---|---|
[SWEA]Flatten (0) | 2021.08.05 |