구름톤 챌린지 2-9: 폭탄 구현하기 (2)

짱올이·2023년 8월 25일

구름톤 챌린지

목록 보기
8/8
post-thumbnail

문제 9. 폭탄 구현하기 (2)

해당 문제는 폭탄 구현하기 문제에서 조건을 더 추가한 완전 탐색 문제입니다. 요구 사항을 정확히 구현해야 합니다. N사 기출문제를 반영한 문제입니다.


문제 7. 구름 찾기 깃발과 유사한 문제로 완전 탐색으로 푼다.

  1. 상하좌우 그리고 현재 위치 값을 구하기 위해 좌표를 세팅한다.
int[] dr = {0, -1, 0, 0, 1};
int[] dc = {0, 0, -1, 1, 0};
  1. 그림과 별개로 구한 점수를 담아놓기 위한 점수 배열을 생성
  2. 구하고 싶은 땅의 좌표(x,y)에 세팅해놓은 좌표 dr, dc를 반복해서 계속 더한다.
    if(r >= 0 && c >= 0 && r < N && c < N) {
    좌표를 벗어나지 않고 구하고자 하는 범위 N에 해당하는 조건에서 #, @, 0가 일치하는지 검사하여 점수를 구한다.



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);
	}
}

현재 위치도 점수를 더해야하는 문제 조건을 제대로 못봐서 계속 테스트 통과 못함.
문제를 꼼꼼하게 잘 읽자.

profile
모르면 알때까지 공부하라고~~!!

0개의 댓글