
로봇이 아래 그림과 같이 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 함수의 매개변수로 주어집니다.
주어진 명령을 모두 수행한 후의 로봇 위치를 return 해주세요.
| commands | return |
|---|---|
| "URDDL" | [0, -1] |
"URDDL"명령에 따라 (0, 0)에 있는 로봇은 다음과 같이 움직입니다.
따라서 로봇의 최종 위치는 [0, -1]입니다.
#다음과 같이 import를 사용할 수 있습니다.
#import math
def solution(commands):
# 여기에 코드를 작성해주세요.
answer = []
return answer
#아래는 테스트케이스 출력을 해보기 위한 코드입니다.
commands = "URDDL"
ret = solution(commands)
#[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은 ", ret, " 입니다.")
이번에도
빈칸 채우기문제가 아니라 함수 전체를 작성하는 문제이다.
#다음과 같이 import를 사용할 수 있습니다.
#import math
def solution(commands):
# 여기에 코드를 작성해주세요.
answer = [0, 0]
robot_directs = {"L": "-1,0", "R": "1,0", "U": "0,1", "D": "0,-1"}
for command in commands:
direct = robot_directs[command].split(',')
answer[0] += int(direct[0])
answer[1] += int(direct[1])
return answer
#아래는 테스트케이스 출력을 해보기 위한 코드입니다.
commands = "URDDL"
ret = solution(commands)
#[실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은 ", ret, " 입니다.")
L,R,U,D로 지정하고 각 명령 문자에서 사용할 이동 문자열을 split한 값을 활용해당 문제는 매개변수 commands로 전달된 문자열 안의 문자를 하나씩 가져와 문자별 지정된 방향으로 좌표를 이동시킨 후 마지막 좌표의 위치를 출력하는 문제이다.
def solution(commands):
answer = [0, 0]
rule = {'L': (-1, 0), 'R': (1, 0), 'U': (0, 1), 'D': (0, -1)}
print( rule["L"],rule["L"][0],rule["L"][1] )
for c in commands:
answer[0] += rule[c][0]
answer[1] += rule[c][1]
return answer
commands = "URDDL"
ret = solution(commands)
# [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
print("solution 함수의 반환 값은 ", ret, " 입니다.")
L, R, U, D로 지정하고 각 명령 문자에서 사용할 이동 규칙을 튜플로 정의한 값을 지정해서 활용한다.