250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Mac
- 백준
- 재귀
- 15649
- BOJ
- 설정
- 밑바닥부터 시작하는 딥러닝
- 손실함수
- 신경망 학습
- N-Queen
- streamlit
- 파이썬
- 백트래킹
- 경사하강법
- n과 m
- pyenv
- 파이싼
- 기계학습
- 4948
- 실버
- 가상환경
- 1101
- 그리디 알고리즘
- Python
- 개발환경
- 1002
- 9020
- end to end
Archives
- Today
- Total
파이톨치
[BOJ][Python][2580] 스도쿠 - 시간초과 본문
728x90
[문제 및 출처]
https://www.acmicpc.net/problem/2580
[어떻게 풀까?]
흠...일단 아직 백트래킹을 어떻게 쓰는지 감이 잘 안 잡혀서 아무 생각 없이 구현이라도 해봐자는 마음으로 코드를 작성해 보았다. 정말 비효율적인 코드라고 나도 생각한다. 그렇기에 시간초과가 걸리고 말았고 이에 대해 다시 공부해야겠다는 생각을 가지게 되었다.
[CODE]
COLUM, ROW = 9, 9
board = [[0 for i in range(COLUM)] for j in range(ROW)]
for i in range(COLUM):
board[i] = list(map(int, input().split()))
#더하면 45
def 가로체크(): #성공!
for i in range(COLUM):
temp, cnt = 0, 0
index = 0
for j in range(ROW):
if board[i][j] == 0:
cnt += 1
index = j
temp += board[i][j]
ok = 45 - temp
if cnt == 1 and 1<= ok <= 9:
board[i][index] = ok
def 세로체크(): #성공!
for j in range(ROW):
temp, cnt, index = 0, 0, 0
for i in range(COLUM):
if board[i][j] == 0:
cnt += 1
index = i
temp += board[i][j]
ok = 45 - temp
if cnt == 1 and 1 <= ok <= 9:
board[index][j] = ok
def 사각형체크(): #성공!
for I in range(3):
for J in range(3):
temp, cnt, index_x, index_y = 0, 0, 0, 0
for i in range(I*3, I*3+3):
for j in range(J*3, J*3+3):
if board[i][j] == 0:
cnt += 1
index_x, index_y = j, i
temp += board[i][j]
ok = 45 - temp
if cnt == 1 and 1<= ok <=9:
board[index_y][index_x] = ok
def one_set():
cnt = 1
while cnt != 0:
cnt = 0
for i in range(COLUM):
if 0 in board[i]:
cnt += 1
가로체크()
세로체크()
사각형체크()
one_set()
for line in board:
for num in line:
print(num, end= " ")
print()
728x90
'알고리즘' 카테고리의 다른 글
[BOJ][Python] 2156-포도주 시식 (0) | 2021.08.08 |
---|---|
[BOJ][Python] 2579번-계단 오르기 (0) | 2021.08.07 |
[BOJ][Pyhon][9184] 신나는 함수 실행 (0) | 2021.08.02 |
[BOJ][Python][9663] N-Queen (0) | 2021.08.01 |
[BOJ][Python][15651] N과 M(4) (0) | 2021.07.31 |