rook

재피터노트북·2022년 9월 1일

문제


문제풀이

이중 배열에 입력값을 넣고 룩을 발견했을때 x, y좌표값으로 상,하,좌,우 값들을 하나하나씩 보면서 킹이 나오면 출력 1을 하고 장애물이 나오거나 킹이 안나오면 넘어가게 하면 된다.

풀이코드

import java.util.Scanner;
public class Main{
    public static void main(String[] args){

       // Please Enter Your Code Here
       Scanner s = new Scanner(System.in);
       int[][] arr = new int[8][8];
       int num;
       int num2 = 0;
       
       for (int i=0;i<8;i++){
         for (int j=0;j<8;j++){
           num = s.nextInt();
           arr[i][j] = num;
         }
       }
       
       for (int i=0;i<8;i++){
         for (int j=0;j<8;j++){
           if (arr[i][j] == 2){
           
             for (int k=j;k>=0;k--){
               if (arr[i][k] == 3){
                 break;
               }
               else if (arr[i][k] == 1 && num2 == 0){
                 System.out.println(1);
                 num2++;
                 break;
               }
             }
             
             for (int l=j;l<=7;l++){
               if (arr[i][l] == 3){
                 break;
               }
               else if (arr[i][l] == 1 && num2 == 0) {
                 System.out.println(1);
                 num2++;
                 break;
               }
             }
             
             for (int m=i;m<=7;m++){
               if (arr[m][j] == 3){
                 break;
               }
               else if (arr[m][j] == 1 && num2 == 0) {
                 System.out.println(1);
                 num2++;
                 break;
               }
               
             }
             
             for (int n=i;0<=n;n--){
               if (arr[n][j] == 3){
                 break;
               }
               else if (arr[n][j] == 1 && num2 == 0) {
                 System.out.println(1);
                 num2++;
                 break;
               }
             }
             
             
             
           }
         }
       }
       if (num2 == 0) {
         System.out.print(0);
       }

        
    }
}
profile
난 이 재 선

0개의 댓글