[이것이 코딩테스트다]상하좌우

jerryPark·2021년 7월 12일
0

문제:
여행자 A는 N X N 크기의 정사각형 공간 위에 서있다. 이 공간은 1 x 1 크기의 정사각형으로 나누어져 있다. 가장 왼쪽 위 (1, 1)이며, 가장 오른쪽 아래 좌표는 (1, 1)이다. 우리 앞에는 여행가 A가 이동할 계획이적힌 계획서가 놓여 있다.

L : 왼쪽으로 한 칸 이동
R : 오른쪽으로 한 칸 이동
U : 위로 한 칸 이동
D : 아래로 한 칸 이동

입력 조건 :

  • 첫째 줄에 공간의 크기를 나타내는 N이 주어진다.(1 <= N <= 100)
  • 둘째 줄에 여행가 A가 이동할 계획서 내용이 주어진다. (1 <= 이동 횟수 <= 100)

출력 조건:
첫째 줄에 여행가 A가 최종적으로 도착할 지점의 좌표 (X, Y)를 공백으로 구분하여 출력한다.

# n 입력받기
n = int(input())
plans = input().split()

해당하는 입력을 숫자와 공백을 기준으로 L, R, U, D를 입력받는다.

x, y = 1,1
moving_step = ['L','R','U','D']
dx = [0,0,-1,1]
dy = [-1,1,0,0]

다음으로 해당하는 변수 값을 초기화하는 작업을 수행해야합니다. x,y를 1,1로 초기화해주고, 여행자가 이동할 때마다 값의 증감량을 담을 수 있는 값들을 리스트로 저장했습니다.

for plan in plans:
	for i in range(len(moving_step)):
    	if plan == moving_step[i]:
        	nx = x + dx[i]
            ny = y + dy[i]
        if nx < 1 or ny < 1 or nx > n or ny > n:
     		continue
        x,y = nx, ny
print(x,y)    

사용자에게 입력받은 움직임마다 for문을 돌려서 (1,1)을 계속적으로 움직이게 수행하였습니다.

profile
"어제보다 더 나은 오늘의 나"

0개의 댓글