https://www.acmicpc.net/problem/1652
1652번: 누울 자리를 찾아라
첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다.
www.acmicpc.net
해석 및 팁
이 문제는 연속해서 2칸 이상의 빈칸이 존재하면 누울 수 있습니다. 하지만 주의할 점은 "..XX.." 같은 경우는 경우의 수가 2개라는 것입니다. 따라서 가장자리의 벽을 X로 설정해 놓으면.. X인 경우에만 개수가 늘어납니다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int row = 0;
int col = 0;
int n = sc.nextInt();
char[][] arr = new char[n+1][n+1];
for(int i = 0; i < n; i++) {
String str = sc.next();
for(int j = 0; j < n; j++) {
arr[i][j] = str.charAt(j);
}
arr[i][n] = arr[n][i] = 'X'; // 가장자리의 벽도 짐으로 판단
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < n-1; j++) {
if(arr[i][j] == '.' && arr[i][j+1] == '.' && arr[i][j+2] == 'X') {
row++;
}
if(arr[j][i] == '.' && arr[j+1][i] == '.' && arr[j+2][i] == 'X') {
col++;
}
}
}
System.out.println(row+" "+col);
}
}
'백준' 카테고리의 다른 글
백준 13301 타일 장식물(Java) (0) | 2023.01.23 |
---|---|
백준 5635 생일(Java) (0) | 2023.01.23 |
백준 2839 설탕 배달(Java) (0) | 2023.01.23 |
백준 14916 거스름돈(Java) (0) | 2023.01.23 |
백준 10826 피보나치 수 4(Java) (0) | 2023.01.23 |