콩부방

1509 : 진격 후 결과 본문

알고리즘 공부/CodeUp

1509 : 진격 후 결과

콩이아부지이 2021. 9. 19. 12:45
728x90

10*10 크기의 보드판이 있다.

각 말들은 제일 아래쪽에서 위쪽 방향으로 진격한다.

장애물은 0이 아닌 숫자로 나타내며, 0보다 크면 블럭 장애물, 0보다 작으면 구덩이 장애물, 0이면 평지이다.

10*10 보드판의 정보가 입력되고, 각 세로줄 아래에 말이 있으면 1, 없으면 0이 입력될 때 각 말의 생존여부를 구하는 프로그램을 구현하시오.

입력

10*10의 보드판의 정보가 입력된다.

11째줄에 각 말의 위치 여부가 입력된다.(1:있음, 0:없음)

출력

블럭 장애물에 부딪혀서 실패시 "세로줄 번호 crash", 

구덩이에 떨어져서 실패시 "세로줄 번호 fall",

무사히 통과하면 "세로줄 번호 safe"를 출력한다.

(단, 말이 없는 줄은 아무결과도 출력하지 않는다.)

입력 예시

 

 

출력 예시

1 safe

2 crash

5 crash

6 fall

8 crash

10 safe

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[][] a = new int[10][10];
		int[] b = new int[10];
		
		for (int i = 0; i < 10; i++) {
			for (int j = 0; j < 10; j++) {
				a[i][j]=sc.nextInt();
			}
		}
		for (int i = 0; i < b.length; i++) {
			b[i]= sc.nextInt();
		}
		for (int i = 0; i < 10; i++) {
			int cnt=0;
			for (int j = 9; j >= 0; j--) { //
				cnt++; //10이면 safe
				if(b[i]==1 && a[j][i] > 0) {
					System.out.print(i+1+" crash\n");
					break;
				}else if(b[i]==1 && a[j][i] < 0) {
					System.out.print(i+1+" fall\n");
					break;
				}
			} 
			if(b[i] == 1 && cnt == 10) {
				System.out.print(i+1+" safe\n");
			}
		}
	}
}

 

출처 : https://codeup.kr/problem.php?id=1509 

 

진격 후 결과

0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 2 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1

codeup.kr

 

728x90
Comments