본문 바로가기

자료구조+알고리즘/BOJ

[1100][java][백준][브론즈Ⅱ]하얀칸

알고리즘 

- 구현

- 문자열



풀이

1. 방법 : 짝수행(0, 2, 4, 6)과 홀수행(1, 3, 5, 7)을 구분하여 하얀 칸 위에 말이 올려져 있는지 확인
2. 방법 : 하얀 칸이 위치한 +열의 합이 짝수인 경우에 말이 올려져 있는지 확인 !!!

 

   0 1 2 3  4 5 6  7
0 w b w b w b w b
1 b w b w b w b w
2 w b w b w b w b
3 b w b w b w b w
4 w b w b w b w b
5 b w b w b w b w
6 w b w b w b w b
7 b w b w b w b w


java코드

방법 1

 </p

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] chess = new String[8];
 
        for(int i=0; i<8; i++)
            chess[i] = sc.nextLine();
        int count=0;
 
        for(int i=0; i<chess.length; i++){
            for(int j=0; j<chess.length; j++){
                // 짝수행칸 짝수열칸
                if( i%2==0 && j%2==0 && chess[i].charAt(j)=='F' )
                    count++;
                // 홀수행칸 홀수열칸
                if( i%2==1 && j%2==1 && chess[i].charAt(j)=='F' )
                    count++;
            }
        }
        System.out.println(count);
    }
}
cs

 

방법 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.Scanner;
 
public class prac {
 
    public static void main(String[] args){
        int SIZE = 8;
        int count = 0;
        Scanner sc = new Scanner(System.in);
        String line = "";
        //체스판
        char[][] chess = new char[SIZE][SIZE];
 
        for(int i=0; i<SIZE; i++){
            line = sc.nextLine();
            for(int j=0; j<SIZE; j++){
                chess[i][j] = line.charAt(j);
 
                //하얀칸 = 행+열 % 2 이므로 이게 F 이면 카운트
                if((i+j)%2 == 0 && chess[i][j] == 'F')
                    count++;
            }
        }
 
        System.out.println(count);
    }
}
 
cs
728x90
반응형