https://www.acmicpc.net/problem/15684
전체 코드
제출 언어: PyPy3
시간: 1400ms
import sys
def check_is_success():
global N, H, mat
is_success = True
for i in range(1, N+1):
d = 0
idx_left, idx_right = i-1, i
for j in range(H):
if mat[j][idx_left]:
d -= 1
idx_left -= 1
idx_right -= 1
elif mat[j][idx_right]:
d += 1
idx_left += 1
idx_right += 1
if d != 0:
is_success = False
break
return is_success
def solution(cur_cnt, x, y):
global answer, N, H
if check_is_success():
if answer == -1 or answer > cur_cnt:
answer = cur_cnt
return
if cur_cnt >= 3 or (answer != -1 and answer <= cur_cnt):
return
for i in range(y, H):
sc = x if i == y else 1
for j in range(sc, N):
if mat[i][j]:
continue
elif mat[i][j-1] or mat[i][j+1]:
continue
mat[i][j] = True
solution(cur_cnt+1, j+1, i)
mat[i][j] = False
if __name__ == "__main__":
N, M, H = map(int, sys.stdin.readline().strip().split())
mat = [ [ False ] * (N+1) for _ in range(H) ]
for _ in range(M):
a, b = map(int, sys.stdin.readline().strip().split())
mat[a-1][b] = True
answer = -1
solution(0, 1, 0)
print(answer)
읽어 주셔서 감사합니다 :)
틀린 부분이 있다면 댓글로 편히 알려주세요😊
'PS > Python' 카테고리의 다른 글
[백준] 1920 - 수 찾기 (파이썬, Python) (0) | 2021.09.19 |
---|---|
[백준] 2644 - 촌수계산 (파이썬, Python) (0) | 2021.09.17 |
[Programmers] 신규 아이디 추천 (파이썬, Python) (0) | 2021.09.10 |
[백준] 17825 - 주사위 웇놀이 (파이썬, Python) (2) | 2021.08.31 |
[백준] 16234 - 인구 이동 (파이썬, Python) (0) | 2021.08.29 |