์คํ ์ฟ ๊ฒ์ฌ
๐ ๋ฌธ์
์ค๋์ฟ ๋ ๋งค์ฐ ๊ฐ๋จํ ์ซ์ ํผ์ฆ์ด๋ค.
9ร9 ํฌ๊ธฐ์ ๋ณด๋๊ฐ ์์ ๋, ๊ฐ ํ๊ณผ ๊ฐ ์ด,
๊ทธ๋ฆฌ๊ณ 9 ๊ฐ์ 3ร3 ํฌ๊ธฐ์ ๋ณด๋์ 1๋ถํฐ 9๊น์ง์ ์ซ์๊ฐ ์ค๋ณต ์์ด ๋ํ๋๋๋ก ๋ณด๋๋ฅผ ์ฑ์ฐ๋ฉด ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์์ ๋ณด์.
์ ๊ทธ๋ฆผ์ ์ค๋์ฟ ๋ฅผ ์ ํํ๊ฒ ํผ ๊ฒฝ์ฐ์ด๋ค.
๊ฐ ํ์ 1๋ถํฐ 9๊น์ง์ ์ซ์๊ฐ ์ค๋ณต ์์ด ๋์ค๊ณ ,
๊ฐ ์ด์ 1๋ถํฐ 9๊น์ง์ ์ซ์๊ฐ ์ค๋ณต ์์ด ๋์ค๊ณ ,
๊ฐ 3ร3์ง๋ฆฌ ์ฌ๊ฐํ(9๊ฐ์ด๋ฉฐ, ์์์ ์ ๊น๋ก ํ์๋์๋ค)์ 1๋ถํฐ 9๊น์ง์ ์ซ์๊ฐ ์ค๋ณต ์์ด ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค.
์์ฑ๋ 9ร9 ํฌ๊ธฐ์ ์๋์ฟ ๊ฐ ์ฃผ์ด์ง๋ฉด ์ ํํ๊ฒ ํ์์ผ๋ฉด โYES",
์๋ชป ํ์์ผ๋ฉด โNO"๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
โฃ ์ ๋ ฅ์ค๋ช
์ฒซ ๋ฒ์งธ ์ค์ ์์ฑ๋ 9ร9 ์ค๋์ฟ ๊ฐ ์ฃผ์ด์ง๋๋ค.
โฃ ์ถ๋ ฅ์ค๋ช
์ฒซ์งธ ์ค์ โYES" ๋๋ โNO"๋ฅผ ์ถ๋ ฅํ์ธ์.
โฃ ์ ๋ ฅ์์
1 4 3 6 2 8 5 7 9
5 7 2 1 3 9 4 6 8
9 8 6 7 5 4 2 3 1
3 9 1 5 4 2 7 8 6
4 6 8 9 1 7 3 5 2
7 2 5 8 6 3 9 1 4
2 3 7 4 8 1 6 9 5
6 1 9 2 7 5 8 4 3
8 5 4 3 9 6 1 2 7
โฃ ์ถ๋ ฅ์์
YES
๐ง ํ์ด (์คํจ: 45 ํฉ์ ๊ธฐ์ค์ผ๋ก ํ๋๋ฐ ๋ฐ๋ก ์กด์ฌ)
# ์คํจ
# 45 ํฉ์ ๊ธฐ์ค์ผ๋ก ๋ง๋ ์๋์ฟ
# ๊ฐ์ด ์ค๋ณต๋๋๋ผ๋ ํฉ์ด 45๊ฐ ๋๋ ๋ฐ๋ก๊ฐ ์กด์ฌํจ
'''
๊ฐ ์ฌ๊ฐํ์ ํฉ
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]
a[0][3] a[0][4] a[0][5]
a[1][3] a[1][4] a[1][5]
a[2][3] a[2][4] a[2][5]
a[0][6] a[0][7] a[0][8]
a[1][6] a[1][7] a[1][8]
a[2][6] a[2][7] a[2][8]
a[3][0] a[3][1] a[3][2]
a[4][0] a[4][1] a[4][2]
a[5][0] a[5][1] a[5][2]
a[3][3] a[3][4] a[3][5]
a[4][3] a[4][4] a[4][5]
a[5][3] a[5][4] a[5][5]
a[3][6] a[3][7] a[3][8]
a[4][6] a[4][7] a[4][8]
a[5][6] a[5][7] a[5][8]
a[6][0] a[6][1] a[6][2]
a[7][0] a[7][1] a[7][2]
a[8][0] a[8][1] a[8][2]
a[6][3] a[6][4] a[6][5]
a[7][3] a[7][4] a[7][5]
a[8][3] a[8][4] a[8][5]
a[6][6] a[6][7] a[6][8]
a[7][6] a[7][7] a[7][8]
a[8][6] a[8][7] a[8][8]
3๊ฐ * 3๊ฐ ๋งํผ ์ด์ค๋ฐ๋ณตํ๋ฉด ๋ ๋ฏ!
'''
sudoku = [list(map(int, input().split())) for _ in range(9)]
cnt1 = 0
cnt2 = 0
cnt3 = 0
for i in range(9):
print(sum(sudoku[i]))
if sum(sudoku[i]) == 45:
cnt1 = 0
else:
cnt1 = 1
tmp = 0
for j in range(9):
tmp += sudoku[j][i]
print(tmp)
if tmp == 45:
cnt2 = 0
else:
cnt2 = 1
for l1 in range(3):
for l2 in range(3):
tmp2 = 0
tmp2 += sudoku[l1 * 3][l2 * 3]
tmp2 += sudoku[l1 * 3][l2 * 3 + 1]
tmp2 += sudoku[l1 * 3][l2 * 3 + 2]
tmp2 += sudoku[l1 * 3 + 1][l2 * 3]
tmp2 += sudoku[l1 * 3 + 1][l2 * 3 + 1]
tmp2 += sudoku[l1 * 3 + 1][l2 * 3 + 2]
tmp2 += sudoku[l1 * 3 + 2][l2 * 3]
tmp2 += sudoku[l1 * 3 + 2][l2 * 3 + 1]
tmp2 += sudoku[l1 * 3 + 2][l2 * 3 + 2]
print(tmp2)
if tmp2 == 45:
cnt3 = 0
else:
cnt3 = 1
if cnt1 == 1 or cnt2 == 1 or cnt3 == 1:
print('NO')
else:
print('YES')
๋ค๋ฅธ ์ฌ๋ ํ์ด
# ํ์ ์ฒดํฌํ๋ ๋ฆฌ์คํธ
# ์ด์ ์ฒดํฌํ๋ ๋ฆฌ์คํธ
# ๊ทธ๋ฃน์ ์ฒดํฌํ๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ ํ์ธ
'''
ch = [0] * 10
ch1 ํ
ch2 ์
ch3 ๊ทธ๋ฃน
ch[a[i][j]] = 1
sum(ch) != 9
์๋ชป๋ ์คํ ์ฟ ์
'''
def check(tmp):
for i in range(9):
ch1 = [0] * 10
ch2 = [0] * 10
for j in range(9):
ch1[a[i][j]] = 1
ch2[a[j][i]] = 1
if sum(ch1) != 9 or sum(ch2) != 9:
return False
for i in range(3):
for j in range(3):
ch3 = [0] * 10
for k in range(3):
for s in range(3):
ch3[a[i*3 + k][j*3 + s]] = 1
if sum(ch3) != 9:
return False
return True
a = [list(map(int, input().split())) for _ in range(9)]
if check(a):
print('YES')
else:
print('NO')
'๐งฉ Algorithm > ๐จ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ์ด๋ถ ๊ฒ์ (0) | 2022.08.01 |
---|---|
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ๊ฒฉ์ํ ํ๋ฌธ์ (0) | 2022.07.26 |
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ๋ด์ฐ๋ฆฌ (0) | 2022.07.26 |
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ๊ณณ๊ฐ(๋ชจ๋์๊ณ) (0) | 2022.07.26 |
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ์ฌ๊ณผ๋๋ฌด(๋ค์ด์๋ชฌ๋) (0) | 2022.07.26 |