문제

boolean[][] board = {
                {true, false},
                {false, true}
        };

 

주어진 배열에서 true를 검은 바둑돌, false를 흰 바둑돌이라고 가정했을 때, 

검은 바둑돌의 좌표를 출력하는 프로그램을 작성하자

 

 

풀이 과정

1. for문을 중첩으로 사용해서 2차원 배열의 각 데이터에 접근

  • for-each는 반복할 때마다 증가하는 값을 가지는 변수가 없으므로 해당 문제에서 사용 불가

2. 조건문으로 해당 값이 true일 때, 중첩된 반복문의 증가된 값 2개를 각 x, y좌표로 출력

 

 

결과

package chap1;

public class BlackStoneFinder {
    public static void main(String[] args) {
        boolean[][] board = {
                {true, false},
                {false, true}
        };

        for(int i=0; i<board.length; i++){
            for(int j=0; j<board[i].length; j++){
                if(board[i][j]){
                    System.out.println("검은돌(●) 위치: (" + i + "," + j + ")");
                }
            }
        }
    }
}

 

☝️ if문은 괄호 안의 조건이 true일 때 실행되는데, `board[i][j]` 자체가 이미 boolean 값이므로 별도의 비교 연산 없이도 바로 조건으로 사용 가능하다.