본문 바로가기

Python/Python 문제

Python 문제 26

#문제6
로봇이 아래 그림과 같이 2차원 평면의 원점 (0, 0)에 서있습니다. 

이 로봇은 x축 방향, 혹은 y축 방향으로만 움직일 수 있으며, 알파벳으로 명령을 내릴 수 있습니다. 명령을 내릴 때 사용하는 알파벳은 'L', 'R', 'U', 'D'의 4가지이며, 'L'은 x축 방향으로 -1만큼, 'R'은 x축 방향으로 +1만큼, 'U'는 y축 방향으로 +1만큼, 'D'는 y축 방향으로 -1 만큼 이동하라는 의미입니다. 

로봇에게 내린 명령이 순서대로 들어있는 문자열 commands가 매개변수로 주어질 때, 주어진 명령을 모두 수행한 후의 로봇 위치를 return 하도록 solution 함수를 완성해주세요.

---
#####매개변수 설명
로봇에게 내린 명령이 순서대로 들어있는 문자열 commands가 solution 함수의 매개변수로 주어집니다.
* commands는 알파벳 대문자 'L', 'R', 'U', 'D'로만 이루어진 문자열이며, 길이는 1 이상 100 이하입니다.

---
#####return 값 설명
주어진 명령을 모두 수행한 후의 로봇 위치를 return 해주세요.
* [x축 좌표, y축 좌표] 형태로 로봇의 최종 위치를 리스트에 담아 return 해주세요.

---
#####예시

| commands | return  |
|------------|---------|
| "URDDL"    | [0, -1] |

#####예시 설명

"URDDL"명령에 따라 (0, 0)에 있는 로봇은 다음과 같이 움직입니다.

* [0, 0] → [0, 1] → [1, 1] → [1, 0] → [1, -1] → [0, -1]

따라서 로봇의 최종 위치는 [0, -1]입니다.

 

내가 푼 답

def solution(commands):
    dict = {"L":-1, "R":1, "U":1, "D":-1}
    val = [0,0]
    for i in commands:
        if i == "L" or i == "R":
            val[0] += dict[i]
        elif i == "U" or i == "D":
            val[1] += dict[i]
    answer = val
    return answer

와 지렸다........

저번에 다이얼 누르는 문제랑 비슷해서 그거 응용해서 풀었다... 씌발 드디어 풀었다

 

답안 예시

def solution(commands):
    current_position = [0, 0]
    for d in commands:
        if d == "L":
            current_position[0] -= 1
        elif d == "R":
            current_position[0] += 1
        elif d == "U":
            current_position[1] += 1
        elif d == "D":
            current_position[1] -= 1
    return current_position

 

'Python > Python 문제' 카테고리의 다른 글

Python 문제 28  (0) 2021.11.19
Python 문제 27  (0) 2021.11.19
Python 문제 25  (0) 2021.11.19
Python 문제 24  (0) 2021.11.19
Python 문제 23  (0) 2021.11.19