일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 다이나믹프로그래밍
- javascript
- 백준 1253번
- 백준 15787번
- 다이나믹 프로그래밍
- 백준 1987
- AWS
- 명품자바
- 백준 16918번
- MySQL
- 그리디
- ubuntu
- SQL
- 백준 3085번
- 그래프
- 모각코
- 머신러닝과 딥러닝
- Python
- SWEA 15612번
- 알고리즘
- react
- 자바
- 깃헙
- 백준 18310번
- 백준 17451번
- 백준 1331번
- 백준
- HUFS 모각코 캠프
- java_programming
- 백준 2512번
Archives
- Today
- Total
차곡차곡
[BOJ/Python] 백준 1331번 - 나이트 투어 본문
백준 #1331 나이트 투어
import sys
input = sys.stdin.readline
visited = [[False for _ in range(6)] for _ in range(6)]
def check(before, move):
alp = {'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5}
befor_num = alp[before[0]]
move_num = alp[move[0]]
if abs(move_num - befor_num) == 2 and abs(int(move[1]) - int(before[1])) == 1 and not visited[move_num][int(move[1])-1]:
visited[move_num][int(move[1])-1] = True
elif abs(move_num - befor_num) == 1 and abs(int(move[1]) - int(before[1])) == 2 and not visited[move_num][int(move[1])-1]:
visited[move_num][int(move[1])-1] = True
else:
return False
return True
flag = True
for i in range(36):
move = input().strip()
if i == 0:
start = move
else:
if not check(before, move):
flag = False
break
before = move
if not check(before, start):
flag = False
if flag:
print("Valid")
else:
print("Invalid")
'CS > Algorithm' 카테고리의 다른 글
[SWEA/Python] SW Expert Academy 15612번 - 체스판 위의 룩 배치 (0) | 2022.11.06 |
---|---|
[BOJ/Python] 백준 5430번 - AC (0) | 2022.11.06 |
[BOJ/Python] 백준 15787번 - 기차가 어둠을 해치고 은하수를 (0) | 2022.09.24 |
[BOJ/Python] 백준 2468번 - 안정 영역 (1) | 2022.09.20 |
[BOJ/Python] 백준 18310번 - 안테나 (0) | 2022.09.19 |
Comments