반응형
1) 문제
https://www.acmicpc.net/problem/2615
2) 문제 풀이
import java.util.*;
public class Main {
static int[][] board = new int[19][19];
static int[] dx = {1, 0, 1, -1}; // 우, 하, 우하, 우상
static int[] dy = {0, 1, 1, 1};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 19; i++) {
for (int j = 0; j < 19; j++) {
board[i][j] = sc.nextInt();
}
}
for (int i = 0; i < 19; i++) {
for (int j = 0; j < 19; j++) {
if (board[i][j] != 0) {
int winner = board[i][j];
for (int d = 0; d < 4; d++) {
if (checkWin(i, j, winner, d)) {
System.out.println(winner);
System.out.println((i + 1) + " " + (j + 1));
return;
}
}
}
}
}
System.out.println(0);
}
static boolean checkWin(int x, int y, int color, int dir) {
int count = 1;
int nx = x + dx[dir], ny = y + dy[dir];
while (isValid(nx, ny) && board[nx][ny] == color) {
count++;
nx += dx[dir];
ny += dy[dir];
}
nx = x - dx[dir];
ny = y - dy[dir];
while (isValid(nx, ny) && board[nx][ny] == color) {
count++;
nx -= dx[dir];
ny -= dy[dir];
}
return count == 5;
}
static boolean isValid(int x, int y) {
return x >= 0 && x < 19 && y >= 0 && y < 19;
}
}
반응형
'coding_test' 카테고리의 다른 글
[99클럽 5기 코테 스터디 TIL 16일차] 고양이는 많을수록 좋다 (feat. 탐욕법(Greedy)) (1) | 2025.02.10 |
---|---|
[99클럽 5기 코테 스터디 TIL 15일차] 치킨배달 (feat. 완전탐색) (0) | 2025.02.07 |
[99클럽 5기 코테 스터디 TIL 13일차] 부등호 (feat. 완전탐색 - 백트래킹) (0) | 2025.02.07 |
[99클럽 5기 코테 스터디 TIL 12일차] 숫자 정사각형 (feat. 완전탐색) (1) | 2025.02.04 |
[99클럽 5기 코테 스터디 TIL 보너스문제] 효율적인 해킹(feat. 완전탐색) (0) | 2025.02.03 |