티스토리 뷰
728x90
https://programmers.co.kr/learn/courses/30/lessons/49994
- 해설 :
-5부터 5까지의 좌표가 존재하는 2차 좌표평면 위에서 "U","D","L","R" 4가지의 명령어를 사용하여 x축 또는 y축으로 이동한다. 주어지는 이동명령을 수행한 후 총 이동하는 거리를 출력하면 된다.
- 풀이 :
"U","D","L","R"의 명령을 수행하기 위해 dictionary에 x,y좌표의 변홧값을 미리 입력해두었다. 주어진 명령을 실행하면서x좌표와 y좌표를 변화시켰는데 x좌표와 y좌표가 좌표평면의 범위를 넘어서지 않고, 이동경로를 기록해주는 answer 배열에 넣어주려 하였는데, 여기서 조건은 이미 이동한 경로일 경우 이동거리에 더해주면 안되기 때문에 이미 answer 배열에 있는 동선인지 검사하도록 하였다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | def solution(dirs): dic = { "U" : [-1,0], "D" : [1,0], "R" : [0,1], "L" : [0,-1] } answer = [] x,y = 5,5 for s in dirs: x += dic[s][0] y += dic[s][1] if 0 <= x < 11 and 0 <= y < 11: check = sorted([[x,y],[x-dic[s][0],y-dic[s][1]]]) if check not in answer: answer.append(check) else: x -= dic[s][0] y -= dic[s][1] return len(answer) | cs |
320x100
'Algorithm > Implementation' 카테고리의 다른 글
(Python) - 프로그래머스 : 시저 암호 (0) | 2022.01.24 |
---|---|
(Python) - 프로그래머스 : 다음 큰 숫자 (0) | 2022.01.21 |
(Python) - 프로그래머스(2018 KAKAO BLIND RECRUITMENT) : [1차] 비밀지도 (0) | 2022.01.21 |
(Python) - 프로그래머스 : 모음사전 (0) | 2022.01.21 |
(Python) - 프로그래머스 : 두 개 뽑아서 더하기 (0) | 2022.01.20 |
댓글
© 2022 WonSeok, All rights reserved