Skip to content

Commit 255a443

Browse files
committed
[PGS] 방문 길이 / Level2 / 30분
1 parent 5c18ba1 commit 255a443

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
"""
2+
#Q1: 좌표평면의 경계를 넘어서는 커멘드도 존재하나요?
3+
-> 이 경우 예외처리가 필요하기 떄문..!
4+
My solution:
5+
일단 이 문제는 커멘드대로 좌표평면상에서 움직이도록
6+
만들면되는 간단한 문제로 보이는데..
7+
이때 "처음 걸어본 길의 길이"를 구하는 것이기 때문에
8+
처음 간건지 아닌지를 판별할 무언가가 필요하다.
9+
이를 위한 조건문과 메모리 역할을 할 변수를 만들어서
10+
걸어본 길의 길이를 카운팅하는 방식으로 풀 수 있을것 같다.
11+
그래서 나는 먼저 좌표평면을 나타낼수있는 2차원 배열을 만들것이다.
12+
이 배열의 성분은 0과 1로 표시되는데, 0은 걸어본 길이 아닐 경우이고
13+
1은 걸어본길일 경우에 해당한다. -> 이 부분은 잘못 생각함..
14+
결국 커멘드에 따라 2차원배열의 row와 col의 성분을 검사하면서 카운팅하는
15+
방식으로 코드를 짜보려고한다.
16+
"""
17+
def solution(dirs):
18+
answer = 0
19+
ddict = {"U": (1, 0), "D":(-1,0), "R":(0,1), "L":(0,-1)}
20+
seen = set()
21+
row, col = 0+5, 0+5
22+
23+
for d in dirs:
24+
r, c = ddict[d]
25+
new_row = row + r
26+
new_col = col + c
27+
if 0<=new_row<=10 and 0<=new_col<=10:
28+
seen.add((row, col, new_row, new_col))
29+
seen.add((new_row, new_col, row, col))
30+
row = new_row
31+
col = new_col
32+
return len(seen) // 2

0 commit comments

Comments
 (0)