🚩 코딩테스트/알고리즘

[프로그래머스] [PCCP 모의고사 #2] 실습용 로봇

딩딩크롱 2023. 2. 18. 18:24
728x90

문제

https://school.programmers.co.kr/learn/courses/15009/lessons/121687

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

dxdy에 이동 종류를 저장합니다.

dir은 방향을 의미합니다.

명령어를 하나씩 확인하며 수행합니다.

'G' 혹은 'B'일 경우 방향대로 이동합니다.

'R'일 경우 dir에 1을 더하고 4로 나눈 나머지를 구해 방향을 전환합니다.

'L'일 경우 dir에 1을 빼고 4로 나눈 나머지를 구해 방향을 전환합니다.

 

코드

파이썬
def solution(command):
    answer = [0, 0]
    dx = [0, 1, 0, -1]
    dy = [1, 0, -1, 0]
    dir = 0
    
    for c in command:
        if c == 'G':
            answer[0] += dx[dir]
            answer[1] += dy[dir]
        elif c == 'B':
            answer[0] -= dx[dir]
            answer[1] -= dy[dir]
        elif c == 'R':
            dir = (dir + 1) % 4
        elif c == 'L':
            dir = (dir - 1) % 4
            
    return answer
728x90