반응형
출처: https://www.acmicpc.net/problem/1652
Input
5
....X
..XX.
.....
.XX..
X....
Output
5 4
배열을 순회하며 양 끝 중에 벽이나 짐이 놓여있는지 확인
- 가로로 누울 수 있는 공간 5개
- 세로로 누울 수 있는 공간 4개
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = Integer.parseInt(sc.next());
String[] arr = new String[N];
for(int i=0; i<N; i++) {
arr[i] = sc.next();
}
int row = 0;
int col = 0;
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
if(arr[i].charAt(j) == '.') {
// 문자열(배열)의 길이를 벗어나지 않는 선에서 다음 위치가 누울 수 있는지 확인
// 가로로 누울 수 있는지 확인
if( j+1 < N && arr[i].charAt(j+1) == '.' ) {
// 실제 문제에서 요구하는 누울 수 있는 위치는
// 누운 방향에 짐이나 벽이 위치해야 한다. (중간에 어정쩡하게 있을 수 없다.)
// 좌항 = 벽인지 체크 / 우항 = 짐이 놓여 있는지 체크
if(j+2 >= N || ( j+2 < N && arr[i].charAt(j+2) == 'X') ) {
row++;
}
}
// 세로로 누울 수 있는지 확인
if (i+1 < N && arr[i+1].charAt(j) == '.') {
if(i+2 >= N || (i+2 < N && arr[i+2].charAt(j) == 'X')) {
col++;
}
}
}
}
}
System.out.println(row + " " + col);
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 1427 소트인사이드 (0) | 2021.02.24 |
---|---|
[BOJ] 백준 2667 단지 번호 붙이기 (0) | 2021.02.24 |
[BOJ] 백준 1205 등수 구하기 (0) | 2021.02.24 |
[BOJ] 백준 9012 괄호 (0) | 2021.02.24 |
[BOJ] 백준 1193 분수찾기 (0) | 2021.02.24 |
댓글