문제 9. 폭탄 구현하기 (2)
해당 문제는 폭탄 구현하기 문제에서 조건을 더 추가한 완전 탐색 문제입니다. 요구 사항을 정확히 구현해야 합니다. N사 기출문제를 반영한 문제입니다.
문제 7. 구름 찾기 깃발과 유사한 문제로 완전 탐색으로 푼다.
int[] dr = {0, -1, 0, 0, 1};
int[] dc = {0, 0, -1, 1, 0};
if(r >= 0 && c >= 0 && r < N && c < N) {


import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st1 = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st1.nextToken());
int K = Integer.parseInt(st1.nextToken());
// 상하좌우
int[] dr = {0, -1, 0, 0, 1};
int[] dc = {0, 0, -1, 1, 0};
// metrix
String[][] ground = new String[N+1][N+1];
for(int i = 0; i < N; i++) {
StringTokenizer st2 = new StringTokenizer(br.readLine());
for(int j = 0; j < N; j++) {
ground[i][j] = st2.nextToken();
}
}
int result = 0;
// 좌표의 점수
int[][] score = new int[N+1][N+1];
// 폭탄투하
for(int i = 0; i < K; i++) {
StringTokenizer st3 = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st3.nextToken());
int y = Integer.parseInt(st3.nextToken());
for(int t = 0; t < 5; t++) {
int r = dr[t] + x - 1;
int c = dc[t] + y - 1;
if(r >= 0 && c >= 0 && r < N && c < N) {
if(ground[r][c].equals("#")) {
continue;
}
if(ground[r][c].equals("@")) {
score[r][c] += 2;
}
if(ground[r][c].equals("0")) {
score[r][c]++;
}
}
}
}
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
if(result < score[i][j]) {
result = score[i][j];
}
}
}
// 결과출력
System.out.println(result);
}
}
현재 위치도 점수를 더해야하는 문제 조건을 제대로 못봐서 계속 테스트 통과 못함.
문제를 꼼꼼하게 잘 읽자.