비버놀로지

[BAEKJOON 백준] 1236 성 지키기 본문

ALGORITM/JAVA

[BAEKJOON 백준] 1236 성 지키기

KUNDUZ 2021. 1. 10. 17:43
728x90

www.acmicpc.net/problem/1236

 

1236번: 성 지키기

첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다

www.acmicpc.net

첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다.

 

 

먼저 입력값을 배열로 만들어 준다.

먼저 한 행에 경비원이 있는지 확인을 한다. check 라는 boolean 을 만들어 줘서 한 행에 경비원이 없다면 행에 카운트를 1 올려준다.

 

그렇게 끝까지 확인을 하고 다음은 열로 바꿔서 한 열에 경비원이 없다면 열 카운트를 올려준다. 그렇게 두 카운트를 비교를 해서 더 큰수를 출력해 준다.

 

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		
		int N=sc.nextInt();
		int M=sc.nextInt();
		
		char arr[][]=new char[N][M];
		int cntN=0;
		int cntM=0;
		
		for (int i = 0; i < N; i++) {
			String s=sc.next();
			arr[i]=s.toCharArray();
		}
		for (int i = 0; i < N; i++) {
			boolean check = false;
			for (int j = 0; j < M; j++) {
				if(arr[i][j]!='.') {
					check=true;
				}
			}
			if(!check)cntN++;
		}
		for (int i = 0; i < M; i++) {
			boolean check = false;
			for (int j = 0; j < N; j++) {
				if(arr[j][i]!='.') {
					check=true;
				}
			}
			if(!check)cntM++;
		}
		System.out.println(Math.max(cntN, cntM));
	}
}
728x90
Comments