반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1524 지뢰 찾기 1 (자바, JAVA)입니다.
Intro
Question
문제 설명
입력
지뢰 찾기 맵의 정보가 9행 9열로 입력된다.(지뢰:1, 빈칸:0)
10번째 행에 행 r과 열 c가 입력된다.( 1 <= r, c <= 9 )
출력
(r, c) 주변의 지뢰 개수를 출력한다. 만약 (r,c)가 지뢰가 있는 자리이면 -1을 출력한다.
예시
- 입력 :
1 0 1 0 0 0 0 0 0
1 0 0 0 1 0 0 0 0
1 0 0 0 1 0 0 1 0
1 0 1 1 1 0 0 0 0
1 0 1 0 1 0 0 0 0
1 0 1 1 1 0 0 1 0
1 0 0 0 1 0 0 0 0
1 0 0 0 1 0 0 1 0
1 0 0 0 1 0 0 0 0
5 4 - 출력 : 8
Solution (풀이)
- 풀이 : 메모리 11248, 시간 68
public class Answer1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 지뢰판 9*9 크기를 배열로 지정한다.
int[][] mine = new int[9][9];
// 지뢰가 있는 위치를 입력받는다.
for (int i=0; i<9; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for (int j=0; j<9; j++) {
mine[i][j] = Integer.parseInt(st.nextToken());
}
}
// 내가 선택할 지뢰 위치를 입력받는다.
StringTokenizer st1 = new StringTokenizer(br.readLine(), " ");
int x = Integer.parseInt(st1.nextToken());
int y = Integer.parseInt(st1.nextToken());
// 지뢰 개수
int count = 0;
if (mine[x-1][y-1] == 1) { // 내가 선택한 위치가 지뢰가 있다면
count = -1;
} else {
int startX;
int endX;
int startY;
int endY;
if (x<2) {
startX = 0;
endX = 1;
} else if (x>8) {
startX = 7;
endX = 8;
} else {
startX = x-2;
endX = x;
}
if (y<2) {
startY = 0;
endY = 1;
} else if (y>8) {
startY = 7;
endY = 8;
} else {
startY = y-2;
endY = y;
}
for (int i=startX; i<=endX; i++) {
for (int j=startY; j<=endY; j++) {
if (mine[i][j]==1) {
count++;
}
}
}
}
System.out.println(count);
br.close();
}
}
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1568 : 함수로 배열의 배열의 최대값 위치 리턴하기 (0) | 2022.08.01 |
---|---|
[CodeUp_Java] Q1567 : 함수로 배열의 부분합 리턴하기 (0) | 2022.07.28 |
[CodeUp_Java] Q1521 : 인삼밭 (0) | 2022.07.28 |
[CodeUp_Java] Q1514 : 레이저 체스 (0) | 2022.07.28 |
[CodeUp_Java] Q1513 : 지그재그 배열 3 (0) | 2022.07.28 |