2023년 11월 27일 알고리즘 문제풀이
문제
난이도
Lv.1
코드
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
42
def solution(park, routes):
H = len(park)
W = len(park[0])
a = 0
b = 0
for i in range(H):
for j in range(W):
if park[i][j] == 'S':
a = i
b = j
def check(p,q,x,y):
for i in range(1,q+1):
if p == 'N':
if x-i < 0 or park[x-i][y] == 'X':
return False
elif p == 'S':
if x+i >= H or park[x+i][y] == 'X':
return False
elif p == 'E':
if y+i >= W or park[x][y+i] == 'X':
return False
elif p == 'W':
if y-i < 0 or park[x][y-i] == 'X':
return False
if p == 'N':
return x-q,y
elif p == 'S':
return x+q,y
elif p == 'E':
return x,y+q
elif p == 'W':
return x,y-q
i = 0
while i < len(routes):
way_to_go, distance_to_go = routes[i].split()
if not check(way_to_go,int(distance_to_go), a,b):
i += 1
continue
a,b = check(way_to_go,int(distance_to_go), a,b)
i += 1
return [a,b]
어렵진 않은데 좀 귀찮고.. 그렇다. 그래도 이런 문제 많이 풀어서 어렵진 않다. 레벨이 1인 이유는 문제에서 따져야 하는 경우를 모두 설명해줘서 그런듯 하다.