CodingTest/완전 탐색(구현)

상하좌우 여행가

seongduck 2022. 7. 5. 16:27

1. 문제 설명

출처 : 이코테2021

 

 

2. 문제 조건

 

3. 문제 해결 아이디어

  • 요구사항대로 충실히 구현
  • 시물레이션 유형으로 구현이 중요한 문제

 

4. 풀이

N = int(input())
position = list(map(str,input().split()))

#현재 서 있는 위치
x, y = 1, 1

#동, 북, 서, 남
dx = [0, -1, 0 ,1]
dy = [1, 0, -1, 0]

for i in position:
    if((i == 'L') & (y-1 > 0)):#왼쪽으로 이동
        x += dx[2]
        y += dy[2]
    if((i == 'R') & (y+1 <= N)):#오른쪽으로 이동
        x += dx[0]
        y += dy[0]                            
    if((i == 'U') & (x-1 > 0)):#위로 이동
        x += dx[1]
        y += dy[1]                            
    if((i == 'D') & (x+1 <= N)):#아래로 이동
        x += dx[3]
        y += dy[3]        
print(x,y)

문제 그대로 벽에 닿으면 못가도록 조건만 하나 걸어주는 간단한 로직

 

4-1. 표준 답안

n = int(input())
x, y = 1, 1
plans = input().split()

dx = [0, 0, -1 ,1]
dy = [-1, 1, 0, 0]
move_types = ['L','R','U','D']

for plan in plans:
    for i in range(len(move_types)):
        if plan == move_types[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)

'CodingTest > 완전 탐색(구현)' 카테고리의 다른 글

프로그래머스 (Level 1) - 모의고사  (0) 2022.08.07
문자열 재정렬  (0) 2022.07.07
왕실의 나이트  (0) 2022.07.06
특정 문자열을 포함한 시각구하기  (0) 2022.07.06
구현 이론  (0) 2022.07.05