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

YEAh·2021년 3월 2일
0
post-thumbnail

구현
머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정
완전 탐색 - 모든 경우의 수를 주저 없이 다 계산하는 해결 방법
시뮬레이션 - 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행

✅ 문제

여행가 A는 N x N 크기의 정사각형 공간 위에 서 있다. L(왼쪽으로 한 칸 이동), R(오른쪽), U(위로), D(아래로)로 이동한다. N x N 크기의 정사각형 공간을 벗어나는 움직임은 무시된다. (1, 1)에서 시작하여 최종적으로 도착할 지점의 좌표를 출력하는 프로그램을 작성하시오.

입력 예시

5
R R R U D D

출력 예시

3 4


💻 코드

N = int(input())

data = input().split()

x = 1
y = 1

for i in data:
    if i == 'L':
    	# y좌표가 1인데 L에 따라 움직인다면 정사각형을 벗어나므로 가만히 있는다 
        if y == 1:
           continue
        print('L')
        y -= 1
    elif i == 'R':
    	# y좌표가 N인데 R에 따라 움직인다면 정사각형을 벗어나므로 가만히 있는다 
        if y == N:
           continue
        print('R')
        y += 1
    elif i == 'U':
    	 # x좌표가 1인데 U에 따라 움직인다면 정사각형을 벗어나므로 가만히 있는다 
        if x == 1:
           continue
        print('U')
        x -= 1        
    elif i == 'D':
       	# x좌표가 N인데 D에 따라 움직인다면 정사각형을 벗어나므로 가만히 있는다 
        if x == N:
           continue
        print('D')
        x += 1

print(x, y)

설계

if else 조건문을 사용하여 L, R , U, D에 따라 좌표가 변경되게 하였다. 공간을 무시하는 경우도 각각 조건문 안에 넣어줬다.


📝 정리

if else 조건문으로 문제를 쉽게 해결할 수 있었다. 하지만 공간을 무시하는 경우를 조건마다 명시하지 않고 하나의 코드로 처리하는 방법이 있을까? 그렇게 처리하는 것이 더 효율적인가?

profile
End up being.

0개의 댓글

관련 채용 정보