본문 바로가기
스도쿠문제 풀이/AM7 스도쿠풀이

[문제풀이] AM7 스도쿠 2007년 07월 04일 Normal

by 김프로 2007. 7. 4.
 
4 3             1
    6            
  8   6   5 3   4
      8   7 2 4  
                 
  4 9 5   6      
6   7 3   8     5
            7    
3             9 8

제가 문제를 잘못 베껴적은건지 오늘문제는 정답이 9개가 나오는군요.
아마 잘못출제된 문제인것 같습니다.


※ 풀이과정 입니다. (셀 좌표는 [컬럼,로우])

L01 - Naked Single : [1,1]셀 "4"값과 관련된 로우, 컬럼, 블럭에서 "4"값 제거
L01 - Naked Single : [2,1]셀 "3"값과 관련된 로우, 컬럼, 블럭에서 "3"값 제거
L01 - Naked Single : [9,1]셀 "1"값과 관련된 로우, 컬럼, 블럭에서 "1"값 제거
L01 - Naked Single : [3,2]셀 "6"값과 관련된 로우, 컬럼, 블럭에서 "6"값 제거
L01 - Naked Single : [2,3]셀 "8"값과 관련된 로우, 컬럼, 블럭에서 "8"값 제거
L01 - Naked Single : [4,3]셀 "6"값과 관련된 로우, 컬럼, 블럭에서 "6"값 제거
L01 - Naked Single : [6,3]셀 "5"값과 관련된 로우, 컬럼, 블럭에서 "5"값 제거
L01 - Naked Single : [7,3]셀 "3"값과 관련된 로우, 컬럼, 블럭에서 "3"값 제거
L01 - Naked Single : [9,3]셀 "4"값과 관련된 로우, 컬럼, 블럭에서 "4"값 제거
L01 - Naked Single : [4,4]셀 "8"값과 관련된 로우, 컬럼, 블럭에서 "8"값 제거
L01 - Naked Single : [6,4]셀 "7"값과 관련된 로우, 컬럼, 블럭에서 "7"값 제거
L01 - Naked Single : [7,4]셀 "2"값과 관련된 로우, 컬럼, 블럭에서 "2"값 제거
L01 - Naked Single : [8,4]셀 "4"값과 관련된 로우, 컬럼, 블럭에서 "4"값 제거
L01 - Naked Single : [2,6]셀 "4"값과 관련된 로우, 컬럼, 블럭에서 "4"값 제거
L01 - Naked Single : [3,6]셀 "9"값과 관련된 로우, 컬럼, 블럭에서 "9"값 제거
L01 - Naked Single : [4,6]셀 "5"값과 관련된 로우, 컬럼, 블럭에서 "5"값 제거
L01 - Naked Single : [6,6]셀 "6"값과 관련된 로우, 컬럼, 블럭에서 "6"값 제거
L01 - Naked Single : [1,7]셀 "6"값과 관련된 로우, 컬럼, 블럭에서 "6"값 제거
L01 - Naked Single : [3,7]셀 "7"값과 관련된 로우, 컬럼, 블럭에서 "7"값 제거
L01 - Naked Single : [4,7]셀 "3"값과 관련된 로우, 컬럼, 블럭에서 "3"값 제거
L01 - Naked Single : [6,7]셀 "8"값과 관련된 로우, 컬럼, 블럭에서 "8"값 제거
L01 - Naked Single : [9,7]셀 "5"값과 관련된 로우, 컬럼, 블럭에서 "5"값 제거
L01 - Naked Single : [7,8]셀 "7"값과 관련된 로우, 컬럼, 블럭에서 "7"값 제거
L01 - Naked Single : [1,9]셀 "3"값과 관련된 로우, 컬럼, 블럭에서 "3"값 제거
L01 - Naked Single : [8,9]셀 "9"값과 관련된 로우, 컬럼, 블럭에서 "9"값 제거
L01 - Naked Single : [9,9]셀 "8"값과 관련된 로우, 컬럼, 블럭에서 "8"값 제거

-- 현재 빈칸에 올수있는 모든 후보들을 찾은 상태입니다. --
4 3 25 279 2789 29 5689 25678 1
12579 12579 6 12479 1234789 12349 589 2578 279
1279 8 12 6 1279 5 3 27 4
15 156 135 8 139 7 2 4 369
12578 12567 12358 1249 12349 12349 15689 135678 3679
1278 4 9 5 123 6 18 1378 37
6 129 7 3 1249 8 14 12 5
12589 1259 12458 1249 124569 1249 7 1236 236
3 125 1245 1247 124567 124 146 9 8

L04 - InterSection Lock : 로우4 vs 블럭4, 블럭4의 "5"값은 반드시 로우4 내에 위치해야 함

4 3 25 279 2789 29 5689 25678 1
12579 12579 6 12479 1234789 12349 589 2578 279
1279 8 12 6 1279 5 3 27 4
15 156 135 8 139 7 2 4 369
1278 1267 1238 1249 12349 12349 15689 135678 3679
1278 4 9 5 123 6 18 1378 37
6 129 7 3 1249 8 14 12 5
12589 1259 12458 1249 124569 1249 7 1236 236
3 125 1245 1247 124567 124 146 9 8

L05 - Hidden Pair : 컬럼5 {8,9}번째 셀 "56"값은 Subset 패턴2, {8,9}번째 셀 "56"(이)가 아닌값 제거

4 3 25 279 2789 29 5689 25678 1
12579 12579 6 12479 1234789 12349 589 2578 279
1279 8 12 6 1279 5 3 27 4
15 156 135 8 139 7 2 4 369
1278 1267 1238 1249 12349 12349 15689 135678 3679
1278 4 9 5 123 6 18 1378 37
6 129 7 3 1249 8 14 12 5
12589 1259 12458 1249 56 1249 7 1236 236
3 125 1245 1247 56 124 146 9 8

L02 - Hidden Single : [4,9]셀 "7"값은 로우9 에서 유니크 값, 관련된 로우, 컬럼, 블럭에서 "7"값 제거

4 3 25 29 2789 29 5689 25678 1
12579 12579 6 1249 1234789 12349 589 2578 279
1279 8 12 6 1279 5 3 27 4
15 156 135 8 139 7 2 4 369
1278 1267 1238 1249 12349 12349 15689 135678 3679
1278 4 9 5 123 6 18 1378 37
6 129 7 3 1249 8 14 12 5
12589 1259 12458 1249 56 1249 7 1236 236
3 125 1245 7 56 124 146 9 8

L03 - Naked Pair : 로우1 {4,6}번째 셀 "29"값은 Subset 패턴2, 나머지셀에서 "29"값 제거
L01 - Naked Single : [3,1]셀 "5"값과 관련된 로우, 컬럼, 블럭에서 "5"값 제거

4 3 5 29 78 29 68 678 1
1279 1279 6 1249 1234789 12349 589 2578 279
1279 8 12 6 1279 5 3 27 4
15 156 13 8 139 7 2 4 369
1278 1267 1238 1249 12349 12349 15689 135678 3679
1278 4 9 5 123 6 18 1378 37
6 129 7 3 1249 8 14 12 5
12589 1259 1248 1249 56 1249 7 1236 236
3 125 124 7 56 124 146 9 8

L03 - Naked Pair : 블럭2 {1,3}번째 셀 "29"값은 Subset 패턴2, 나머지셀에서 "29"값 제거
L02 - Hidden Single : [1,3]셀 "9"값은 로우3 에서 유니크 값, 관련된 로우, 컬럼, 블럭에서 "9"값 제거

4 3 5 29 78 29 68 678 1
127 127 6 14 13478 134 589 2578 279
9 8 12 6 17 5 3 27 4
15 156 13 8 139 7 2 4 369
1278 1267 1238 1249 12349 12349 15689 135678 3679
1278 4 9 5 123 6 18 1378 37
6 129 7 3 1249 8 14 12 5
1258 1259 1248 1249 56 1249 7 1236 236
3 125 124 7 56 124 146 9 8

L04 - InterSection Lock : 블럭1 vs 로우2, 로우2의 "7"값은 반드시 블럭1 내에 위치해야 함

4 3 5 29 78 29 68 678 1
127 127 6 14 1348 134 589 258 29
9 8 12 6 17 5 3 27 4
15 156 13 8 139 7 2 4 369
1278 1267 1238 1249 12349 12349 15689 135678 3679
1278 4 9 5 123 6 18 1378 37
6 129 7 3 1249 8 14 12 5
1258 1259 1248 1249 56 1249 7 1236 236
3 125 124 7 56 124 146 9 8

L04 - InterSection Lock : 컬럼9 vs 블럭6, 블럭6의 "7"값은 반드시 컬럼9 내에 위치해야 함

4 3 5 29 78 29 68 678 1
127 127 6 14 1348 134 589 258 29
9 8 12 6 17 5 3 27 4
15 156 13 8 139 7 2 4 369
1278 1267 1238 1249 12349 12349 15689 13568 3679
1278 4 9 5 123 6 18 138 37
6 129 7 3 1249 8 14 12 5
1258 1259 1248 1249 56 1249 7 1236 236
3 125 124 7 56 124 146 9 8

L05 - Hidden Pair : 컬럼7 {2,5}번째 셀 "59"값은 Subset 패턴2, {2,5}번째 셀 "59"(이)가 아닌값 제거

4 3 5 29 78 29 68 678 1
127 127 6 14 1348 134 59 258 29
9 8 12 6 17 5 3 27 4
15 156 13 8 139 7 2 4 369
1278 1267 1238 1249 12349 12349 59 13568 3679
1278 4 9 5 123 6 18 138 37
6 129 7 3 1249 8 14 12 5
1258 1259 1248 1249 56 1249 7 1236 236
3 125 124 7 56 124 146 9 8

Z99 - Substitution : 현재적용된 로직으로 더 이상 문제를 풀수없어 대입법을 사용합니다. [4,1]셀 "29"값중 "2"값 대입

4 3 5 2 78 29 68 678 1
127 127 6 14 1348 134 59 258 29
9 8 12 6 17 5 3 27 4
15 156 13 8 139 7 2 4 369
1278 1267 1238 1249 12349 12349 59 13568 3679
1278 4 9 5 123 6 18 138 37
6 129 7 3 1249 8 14 12 5
1258 1259 1248 1249 56 1249 7 1236 236
3 125 124 7 56 124 146 9 8

L01 - Naked Single : [4,1]셀 "2"값과 관련된 로우, 컬럼, 블럭에서 "2"값 제거
L01 - Naked Single : [6,1]셀 "9"값과 관련된 로우, 컬럼, 블럭에서 "9"값 제거

4 3 5 2 78 9 68 678 1
127 127 6 14 1348 134 59 258 29
9 8 12 6 17 5 3 27 4
15 156 13 8 139 7 2 4 369
1278 1267 1238 149 12349 1234 59 13568 3679
1278 4 9 5 123 6 18 138 37
6 129 7 3 1249 8 14 12 5
1258 1259 1248 149 56 124 7 1236 236
3 125 124 7 56 124 146 9 8

Z99 - Substitution : 현재적용된 로직으로 더 이상 문제를 풀수없어 대입법을 사용합니다. [5,1]셀 "78"값중 "7"값 대입

4 3 5 2 7 9 68 678 1
127 127 6 14 1348 134 59 258 29
9 8 12 6 17 5 3 27 4
15 156 13 8 139 7 2 4 369
1278 1267 1238 149 12349 1234 59 13568 3679
1278 4 9 5 123 6 18 138 37
6 129 7 3 1249 8 14 12 5
1258 1259 1248 149 56 124 7 1236 236
3 125 124 7 56 124 146 9 8

L01 - Naked Single : [5,1]셀 "7"값과 관련된 로우, 컬럼, 블럭에서 "7"값 제거
L01 - Naked Single : [5,3]셀 "1"값과 관련된 로우, 컬럼, 블럭에서 "1"값 제거
L01 - Naked Single : [4,2]셀 "4"값과 관련된 로우, 컬럼, 블럭에서 "4"값 제거
L01 - Naked Single : [6,2]셀 "3"값과 관련된 로우, 컬럼, 블럭에서 "3"값 제거
L01 - Naked Single : [3,3]셀 "2"값과 관련된 로우, 컬럼, 블럭에서 "2"값 제거
L01 - Naked Single : [5,2]셀 "8"값과 관련된 로우, 컬럼, 블럭에서 "8"값 제거

4 3 5 2 7 9 68 68 1
17 17 6 4 8 3 59 25 29
9 8 2 6 1 5 3 7 4
15 156 13 8 39 7 2 4 369
1278 1267 138 19 2349 124 59 13568 3679
1278 4 9 5 23 6 18 138 37
6 129 7 3 249 8 14 12 5
1258 1259 148 19 56 124 7 1236 236
3 125 14 7 56 124 146 9 8

L04 - InterSection Lock : 로우4 vs 블럭4, 블럭4의 "1"값은 반드시 로우4 내에 위치해야 함

4 3 5 2 7 9 68 68 1
17 17 6 4 8 3 59 25 29
9 8 2 6 1 5 3 7 4
15 156 13 8 39 7 2 4 369
278 267 38 19 2349 124 59 13568 3679
278 4 9 5 23 6 18 138 37
6 129 7 3 249 8 14 12 5
1258 1259 148 19 56 124 7 1236 236
3 125 14 7 56 124 146 9 8

L04 - InterSection Lock : 로우6 vs 블럭6, 블럭6의 "1"값은 반드시 로우6 내에 위치해야 함

4 3 5 2 7 9 68 68 1
17 17 6 4 8 3 59 25 29
9 8 2 6 1 5 3 7 4
15 156 13 8 39 7 2 4 369
278 267 38 19 2349 124 59 3568 3679
278 4 9 5 23 6 18 138 37
6 129 7 3 249 8 14 12 5
1258 1259 148 19 56 124 7 1236 236
3 125 14 7 56 124 146 9 8

Z99 - Substitution : 현재적용된 로직으로 더 이상 문제를 풀수없어 대입법을 사용합니다. [7,1]셀 "68"값중 "6"값 대입

4 3 5 2 7 9 6 68 1
17 17 6 4 8 3 59 25 29
9 8 2 6 1 5 3 7 4
15 156 13 8 39 7 2 4 369
278 267 38 19 2349 124 59 3568 3679
278 4 9 5 23 6 18 138 37
6 129 7 3 249 8 14 12 5
1258 1259 148 19 56 124 7 1236 236
3 125 14 7 56 124 146 9 8

L01 - Naked Single : [7,1]셀 "6"값과 관련된 로우, 컬럼, 블럭에서 "6"값 제거
L01 - Naked Single : [8,1]셀 "8"값과 관련된 로우, 컬럼, 블럭에서 "8"값 제거
L02 - Hidden Single : [5,9]셀 "6"값은 로우9 에서 유니크 값, 관련된 로우, 컬럼, 블럭에서 "6"값 제거
L01 - Naked Single : [5,8]셀 "5"값과 관련된 로우, 컬럼, 블럭에서 "5"값 제거
L02 - Hidden Single : [2,9]셀 "5"값은 로우9 에서 유니크 값, 관련된 로우, 컬럼, 블럭에서 "5"값 제거
L02 - Hidden Single : [1,4]셀 "5"값은 로우4 에서 유니크 값, 관련된 로우, 컬럼, 블럭에서 "5"값 제거
L02 - Hidden Single : [6,9]셀 "2"값은 로우9 에서 유니크 값, 관련된 로우, 컬럼, 블럭에서 "2"값 제거
L02 - Hidden Single : [7,6]셀 "8"값은 컬럼7 에서 유니크 값, 관련된 로우, 컬럼, 블럭에서 "8"값 제거
L02 - Hidden Single : [8,6]셀 "1"값은 로우6 에서 유니크 값, 관련된 로우, 컬럼, 블럭에서 "1"값 제거
L01 - Naked Single : [8,7]셀 "2"값과 관련된 로우, 컬럼, 블럭에서 "2"값 제거
L01 - Naked Single : [8,2]셀 "5"값과 관련된 로우, 컬럼, 블럭에서 "5"값 제거
L01 - Naked Single : [7,2]셀 "9"값과 관련된 로우, 컬럼, 블럭에서 "9"값 제거

4 3 5 2 7 9 6 8 1
17 17 6 4 8 3 9 5 2
9 8 2 6 1 5 3 7 4
5 16 13 8 39 7 2 4 369
278 267 38 19 2349 14 5 36 3679
27 4 9 5 23 6 8 1 37
6 19 7 3 49 8 14 2 5
128 129 148 19 5 14 7 36 36
3 5 14 7 6 2 14 9 8

L04 - InterSection Lock : 블럭8 vs 로우8, 로우8의 "1"값은 반드시 블럭8 내에 위치해야 함

4 3 5 2 7 9 6 8 1
17 17 6 4 8 3 9 5 2
9 8 2 6 1 5 3 7 4
5 16 13 8 39 7 2 4 369
278 267 38 19 2349 14 5 36 3679
27 4 9 5 23 6 8 1 37
6 19 7 3 49 8 14 2 5
28 29 48 19 5 14 7 36 36
3 5 14 7 6 2 14 9 8

L02 - Hidden Single : [1,2]셀 "1"값은 컬럼1 에서 유니크 값, 관련된 로우, 컬럼, 블럭에서 "1"값 제거
L01 - Naked Single : [2,2]셀 "7"값과 관련된 로우, 컬럼, 블럭에서 "7"값 제거

4 3 5 2 7 9 6 8 1
1 7 6 4 8 3 9 5 2
9 8 2 6 1 5 3 7 4
5 16 13 8 39 7 2 4 369
278 26 38 19 2349 14 5 36 3679
27 4 9 5 23 6 8 1 37
6 19 7 3 49 8 14 2 5
28 29 48 19 5 14 7 36 36
3 5 14 7 6 2 14 9 8

Z99 - Substitution : 현재적용된 로직으로 더 이상 문제를 풀수없어 대입법을 사용합니다. [2,4]셀 "16"값중 "1"값 대입

4 3 5 2 7 9 6 8 1
1 7 6 4 8 3 9 5 2
9 8 2 6 1 5 3 7 4
5 1 13 8 39 7 2 4 369
278 26 38 19 2349 14 5 36 3679
27 4 9 5 23 6 8 1 37
6 19 7 3 49 8 14 2 5
28 29 48 19 5 14 7 36 36
3 5 14 7 6 2 14 9 8

L01 - Naked Single : [2,4]셀 "1"값과 관련된 로우, 컬럼, 블럭에서 "1"값 제거
L01 - Naked Single : [3,4]셀 "3"값과 관련된 로우, 컬럼, 블럭에서 "3"값 제거
L01 - Naked Single : [5,4]셀 "9"값과 관련된 로우, 컬럼, 블럭에서 "9"값 제거
L01 - Naked Single : [9,4]셀 "6"값과 관련된 로우, 컬럼, 블럭에서 "6"값 제거
L01 - Naked Single : [3,5]셀 "8"값과 관련된 로우, 컬럼, 블럭에서 "8"값 제거
L01 - Naked Single : [4,5]셀 "1"값과 관련된 로우, 컬럼, 블럭에서 "1"값 제거
L01 - Naked Single : [6,5]셀 "4"값과 관련된 로우, 컬럼, 블럭에서 "4"값 제거
L01 - Naked Single : [8,5]셀 "3"값과 관련된 로우, 컬럼, 블럭에서 "3"값 제거
L01 - Naked Single : [9,6]셀 "7"값과 관련된 로우, 컬럼, 블럭에서 "7"값 제거
L01 - Naked Single : [2,7]셀 "9"값과 관련된 로우, 컬럼, 블럭에서 "9"값 제거
L01 - Naked Single : [5,7]셀 "4"값과 관련된 로우, 컬럼, 블럭에서 "4"값 제거
L01 - Naked Single : [7,7]셀 "1"값과 관련된 로우, 컬럼, 블럭에서 "1"값 제거
L01 - Naked Single : [2,8]셀 "2"값과 관련된 로우, 컬럼, 블럭에서 "2"값 제거
L01 - Naked Single : [3,8]셀 "4"값과 관련된 로우, 컬럼, 블럭에서 "4"값 제거
L01 - Naked Single : [5,5]셀 "2"값과 관련된 로우, 컬럼, 블럭에서 "2"값 제거

4 3 5 2 7 9 6 8 1
1 7 6 4 8 3 9 5 2
9 8 2 6 1 5 3 7 4
5 1 3 8 9 7 2 4 6
7 6 8 1 2 4 5 3 9
2 4 9 5 3 6 8 1 7
6 9 7 3 4 8 1 2 5
8 2 4 9 5 1 7 6 3
3 5 1 7 6 2 4 9 8

Logic 사용횟수
L01 - Naked Single 57회
L02 - Hidden Single 9회
L03 - Naked Pair 2회
L04 - InterSection Lock 6회
L05 - Hidden Pair 2회
Z99 - Substitution 4회

소요시간 : 0분 0.343초

Logic 순서
L01 - Naked Single
L02 - Hidden Single
L03 - Naked Pair
L04 - InterSection Lock
L05 - Hidden Pair
L06 - Naked Triple
L07 - Hidden Triple
L08 - Naked Quad
L09 - Hidden Quad
L10 - X-Wing
L11 - Sword-Fish
L12 - Jelly-Fish
Z99 - Substitution
Z99 - RollbackSudoku

현재 모든로직이 완성되지않아 "L12"번 까지의 풀이법으로 문제를 풀수없는경우 Z99 - Substitution(대입법)을 이용합니다.
L12 - Jelly-Fish 풀이법보다 상위 풀이법은 현재 작업중입니다.

Sudoku K ver3.11.694 by keetekee