본문 바로가기

알고리즘

SW Expert Academy 1210. S/W 문제해결 기본 2일차 Ladder1(java)

728x90
반응형

사다리타기 게임

 

문제 풀이 

import java.util.Scanner;

public class Solution {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int T;
		T=10;
		
		for(int test_case = 1; test_case <= T; test_case++)
		{
			int n = sc.nextInt();
			
			int arr[][] = new int[100][100];
			
			for(int i = 0; i < 100; i++) {
				for(int j = 0; j < 100; j++) {
					arr[i][j] = sc.nextInt();
				}
			}
			
			int result = 0;
			for(int j = 0; j < 100; j++) {
				if(arr[0][j] == 1) {
					int x = 0;
					int y = j;
					while(x != 99) {
						x = x + 1;
						
						if ( y > 0 && arr[x][y-1] == 1) {
							while(y > 0 && arr[x][y-1] == 1) {
								y = y - 1;
							}
						} else if( y < 99 && arr[x][y+1] == 1) {
							while(y < 99 && arr[x][y+1] ==1) {
								y = y + 1;
							}
						}
					
					}
					
					
					if(arr[x][y] == 2) {
						result = j;
						break;
					}
					
				}
				
			}
			
			System.out.println("#" + test_case + " " + result);
		}
	}

}

 

테스트케이스는 10개이고 arr[0][j] 즉, 첫 번째 열이 1인 것만 아래로 탐색 시작

while 문으로 x열이 99전까지 아래로 내려가는데 가로행 y를 좌우로 체크하면서 1이 있으면 옆으로 가고 아니면  x열에 1을 더해서 내려가는 방식으로 마지막줄까지 내려가고 2인 값을 찾는다. 

 

728x90
반응형