티스토리 뷰
출저 : https://www.acmicpc.net/problem/9291
"구현"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int T; static int[][] map; static boolean[] visited; static int[] dx = {0,0,0,3,3,3,6,6,6}; static int[] dy = {0,3,6,0,3,6,0,3,6}; public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); T = Integer.parseInt(br.readLine()); int t = 1; while(T-- >0) { map = new int[9][9]; for (int i = 0; i < 9; i++) { StringTokenizer st = new StringTokenizer(br.readLine()); for (int j = 0; j < 9; j++) { map[i][j] = Integer.parseInt(st.nextToken()); } } System.out.printf("Case %d: %s\n",t++,solve() ? "CORRECT" : "INCORRECT"); if(T != 0) br.readLine(); } } static boolean solve() { for (int i = 0; i < 9; i++) { visited = new boolean[10]; for (int j = 0; j < 9; j++) { if(visited[map[i][j]]) return false; visited[map[i][j]] = true; } visited = new boolean[10]; for (int j = 0; j < 9; j++) { if(visited[map[j][i]]) return false; visited[map[j][i]] = true; } } for (int i = 0; i < 9; i++) { visited = new boolean[10]; for (int j = dx[i]; j <dx[i]+3 ; j++) { for (int k = dy[i]; k < dy[i]+3; k++) { if(visited[map[j][k]]) return false; visited[map[j][k]] = true; } } } return true; } } | cs |
'Study > 알고리즘 문제풀이' 카테고리의 다른 글
백준 2804. 크로스워드 만들기 :: 돼지개발자 (0) | 2019.01.03 |
---|---|
백준 1890. 점프 :: 돼지개발자 (0) | 2019.01.03 |
SWEA 2819. 격자판의 숫자 이어 붙이기 :: 돼지개발자 (0) | 2018.12.26 |
SWEA 1824. 혁진이의 프로그램 검증 :: 돼지개발자 (0) | 2018.12.26 |
백준 15486. 퇴사 2 :: 돼지개발자 (0) | 2018.12.19 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday