Skip to content

Commit b1efbc6

Browse files
author
hangyeol
committed
116차 2번 문제풀이
1 parent 3bc1018 commit b1efbc6

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,42 @@
11
import sys
2+
from collections import defaultdict, deque
3+
24

35
def main():
46
input = sys.stdin.readline
57
n, T = map(int, input().split())
68

79
stones = set()
10+
yMap = defaultdict(list)
811

912
for _ in range(n):
1013
x, y = map(int, input().split())
1114
stones.add((x, y))
15+
yMap[y].append(x)
16+
17+
for y in yMap:
18+
yMap[y].sort()
19+
20+
visited = set()
21+
queue = deque()
22+
queue.append(((0, 0), 0)) # 위치 (x, y), 이동 횟수
23+
24+
while queue:
25+
(x, y), count = queue.popleft()
26+
27+
if y == T:
28+
print(count)
29+
return
1230

31+
for ny in range(y-2, y+3):
32+
if ny < 0 or ny > T:
33+
continue
34+
for nx in range(x-2, x+3):
35+
if (nx, ny) in stones and (nx, ny) not in visited:
36+
visited.add((nx, ny))
37+
queue.append(((nx, ny), count + 1))
1338

39+
print(-1)
1440

1541
if __name__ == '__main__':
1642
main()

0 commit comments

Comments
 (0)