1 분 소요



https://www.acmicpc.net/problem/1652



🔍 문제 풀이

문제 도식화

고려해야할 조건

  1. X 를 만났을 때
    • .개수를 세다 X를 만났을 때 빈 공간(.)의 덩어리가 끝났으므로, 그 길이가 2 이상인지 확인
  2. 배열의 끝에 도달했을 때
    • ‘X’를 만나지 않고 행 또는 열이 끝나는 경우가 있음 (마지막 행·열이 arr[i][j] == '.' 일 경우)
    • 따라서 마지막에 남아 있는 빈 공간의 길이가 2 이상인지 확인 필요



💻 코드

전체 코드

import java.io.*;

public class Main {
    static int[][] arr;
    static int n;
    static int colAns = 0, rowAns = 0;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        n = Integer.parseInt(br.readLine());
        arr = new int[n][n];

        for(int i=0; i<n; i++){
            String line = br.readLine();
            for(int j=0; j<n; j++){
                arr[i][j] = line.charAt(j);
            }
        }

        solve();
        System.out.println(rowAns + " " + colAns);

    }

    static void solve(){
        // 행 체크
        for(int i=0; i<n; i++){
            int rowCnt = 0;
            for(int j=0; j<n; j++){
                if(arr[i][j] == '.') {
                    rowCnt++;
                }else if(arr[i][j] == 'X'){
                    if(rowCnt >=2) rowAns ++;
                    rowCnt = 0;
                }
            }

            if(rowCnt >= 2) rowAns++; // 행의 끝 확인
        }

        // 열 체크
        for(int i=0; i<n; i++){
            int colCnt = 0;
            for(int j=0; j<n; j++){
                if(arr[j][i] == '.') {
                    colCnt++;
                }else if(arr[j][i] == 'X'){
                    if(colCnt >=2) colAns ++;
                    colCnt = 0;
                }
            }

            if(colCnt >= 2) colAns++; // 열의 끝 확인
        }
    }
}


카테고리:

업데이트:

댓글남기기