728x90
https://level.goorm.io/exam/195689/%EA%B5%AC%EB%A6%84-%EC%B0%BE%EA%B8%B0-%EA%B9%83%EB%B0%9C/quiz/1
728x90
내 생각
오늘 문제는 한 점에서 8방 탐색하는 방법만 잘 알고 있으면 쉽게 풀 수 있는 문제 같다.
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 st;
// N과 K 입력
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
// 게임판 정보 입력
int[][] board = new int[N][N];
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for(int j = 0; j < N; j++) {
board[i][j] = Integer.parseInt(st.nextToken());
}
}
// K인 깃발 개수 세기
int result = 0;
int[] dx = {-1, -1, -1, 0, 0, 1, 1, 1};
int[] dy = {-1, 0, 1, -1, 1, -1, 0, 1};
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
if(board[i][j] == 1) continue; // 구름이 있다면 넘어가기
int count = 0; // 주변에 구름이 몇 개 있는지
for(int k = 0; k < 8; k++) { // 8방 탐색
int nx = i + dx[k];
int ny = j + dy[k];
if(nx >= 0 && nx < N && ny >= 0 && ny < N) { // 범위 체크
if(board[nx][ny] == 1) count++;
}
}
if(count == K) result++; // K 깃발이라면 답 + 1
}
}
// 답 출력
System.out.println(result);
}
}
728x90
'Problem Solving > goorm' 카테고리의 다른 글
[구름톤 챌린지 2주 차 학습 일기] 9일차 미션 문제 9. 폭탄 구현하기 (2) (java) (0) | 2023.08.28 |
---|---|
[구름톤 챌린지 2주 차 학습 일기] 8일차 미션 문제 8. 통증 (java) (0) | 2023.08.23 |
[구름톤 챌린지 2주 차 학습 일기] 6일차 미션 문제 6. 문자열 나누기 (java) (0) | 2023.08.21 |
[구름톤 챌린지 1주 차 학습 일기] 5일차 미션 문제 5. 이진수 정렬 (java) (0) | 2023.08.20 |
[구름톤 챌린지 1주 차 학습 일기] 4일차 미션 문제 4. 완벽한 햄버거 만들기 (java) (0) | 2023.08.18 |