https://www.acmicpc.net/problem/1388
1. 아이디어
이어진 '-' 또는 '|'가 하나의 판자가 되는 상황으로 2차원 배열의 순회로 간단하게 해결할 수 있다.
2. 문제풀이
'-', '|'를 발견하면 가로 또는 세로방향으로 이어진 부분을 전부 찾아서 ' '으로 변경하고 판자의 개수를 세는 방식으로 구현했다.
3. 코드
import java.io.*;
import java.util.*;
public class Main {
private static final char EMPTY = '\u0000';
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
char[][] map = new char[N][M];
for (int i = 0; i < N; i++) {
map[i] = br.readLine().toCharArray();
}
int cnt = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
if (map[i][j] == EMPTY) continue;
if (map[i][j] == '-') {
int k = 0;
while (j + k < M && map[i][j + k] == '-') {
map[i][j + k] = EMPTY;
k++;
}
} else if (map[i][j] == '|') {
int k = 0;
while (i + k < N && map[i + k][j] == '|') {
map[i + k][j] = EMPTY;
k++;
}
}
cnt++;
}
}
System.out.println(cnt);
}
}
4. 후기
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 3985번 - 롤 케이크 [Java] (0) | 2025.02.12 |
---|---|
[백준] 10810번 - 공 넣기 [Java] (0) | 2025.02.12 |
[백준] 9627번 - 문장 [Java] (0) | 2025.02.12 |
[백준] 16463번 - 13일의 금요일 [Java] (0) | 2025.02.12 |
[백준] 1343번 - 폴리오미노 [Java] (0) | 2025.02.12 |