https://www.acmicpc.net/problem/14503
내 풀이:
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
31
32
33
34
35
36
37
38
39
40
41
|
N, M = map(int,input().split())
r, c, dir = map(int,input().split())
arr = [list(map(int,input().split())) for _ in range(N)]
visited = [[False] * M for _ in range(N)]
dy = [-1, 0, 1, 0]
dx = [0, 1, 0, -1]
visited[r][c] = True
ans = 1
while True:
TF = True
for d in range(4):
ny = r + dy[d]
nx = c + dx[d]
if 0 <= ny <= N-1 and 0 <= nx <= M-1 and not visited[ny][nx] and arr[ny][nx] == 0:
TF = False
break
if TF:
ny = r - dy[dir]
nx = c - dx[dir]
if not 0 <= ny <= N-1 or not 0 <= nx <= M-1 or arr[ny][nx] == 1:
break
else:
r = ny
c = nx
continue
ny = r + dy[(dir - 1) % 4]
nx = c + dx[(dir - 1) % 4]
if arr[ny][nx] == 0 and not visited[ny][nx]:
visited[ny][nx] = True
ans += 1
r = ny
c = nx
dir = (dir-1)%4
print(ans)
|
Python3, 60ms
문제 조건만 구현하면 되는 시뮬레이션 문제이다. 삼성 A형 기출 문제 중에서 정답률이 50% 이상인 문제라서 쉬운 편이다.
파이썬으로 풀어보는 백준 14500번: 테트로미노 (삼성 A형 기출 문제) (0) | 2020.02.14 |
---|---|
파이썬으로 풀어보는 백준 14890번: 경사로 (삼성 A형 기출 문제) (0) | 2020.02.13 |
파이썬으로 풀어보는 백준 16235번: 나무 재테크 (삼성 A형 기출 문제) (0) | 2020.02.13 |
파이썬으로 풀어보는 백준 15684번: 사다리 조작 (삼성 A형 기출 문제) (0) | 2020.02.13 |
파이썬으로 풀어보는 백준 17142번: 연구소 3 (삼성 A형 기출 문제) (0) | 2020.02.11 |
댓글 영역