1. 문제 개요
본 코딩 테스트 문제는 주몽이 자신의 군사에게 내린 명령을 바탕으로 하여 주어진 조건을 코딩으로 구현하는 것입니다. 문제는 다음과 같습니다.
문제 설명
주몽은 각 군사에게 N
개의 명령을 내립니다. 각 명령은 특정 방향으로 진행할 것을 지시합니다.
군사들은 이 명령을 받아 실행합니다. 그러나 주몽은 명령 과정에서 실수가 있어
일부 명령을 무시하기로 결정했습니다. 이제 군사들이 명령을 수행한 결과, 최종 위치를 계산하는 프로그램을 작성해야 합니다.
명령의 형식
- 명령은 다음과 같은 문자열의 리스트로 주어집니다:
["U", "D", "L", "R"]
. - “U”는 위로, “D”는 아래로, “L”은 왼쪽으로, “R”은 오른쪽으로 한 칸 이동하는 것을 의미합니다.
- 명령의 수는
1 ≤ N ≤ 1000
입니다.
입력
첫 번째 줄에 명령의 수 N
이 주어지고,
다음 N
개의 줄에 각 명령이 주어집니다.
출력
최종 위치의 좌표 (x, y)
를 정수로 출력합니다.
초기 위치는 (0, 0)
입니다.
2. 문제 풀이 과정
2.1. 문제 이해
문제를 해결하기 위해서는 각 명령에 따른 이동을 특정 규칙에 맞게 구현해야 합니다.
명령의 리스트를 분석하고, 각각의 명령에 따라 좌표를 업데이트하는 방식으로 진행됩니다.
2.2. 데이터 구조 설계
최종 위치를 저장하기 위해 (x, y)
좌표를 사용합니다.
초기값으로 x = 0, y = 0
으로 설정합니다.
2.3. 알고리즘 설계
명령을 한 줄씩 읽어들여서 해당하는 방향으로 이동합니다.
즉, 각 명령에 따라 좌표를 다음과 같이 업데이트합니다:
"U"
:y += 1
"D"
:y -= 1
"L"
:x -= 1
"R"
:x += 1
2.4. 최종 코드 구현
def final_position(commands):
x, y = 0, 0 # 초기 위치
for command in commands:
if command == "U":
y += 1
elif command == "D":
y -= 1
elif command == "L":
x -= 1
elif command == "R":
x += 1
return (x, y)
# 입력 예시
N = int(input("명령의 수를 입력하세요: "))
commands = [input().strip() for _ in range(N)]
# 최종 위치 출력
print(final_position(commands))
3. 예제 및 테스트
3.1. 테스트 케이스
예를 들어, 다음과 같은 입력을 주었을 때:
5
R
R
U
D
L
위 명령을 처리할 경우, 최종 위치는 (1, 0)
이 됩니다.
4. 결론
본 과정에서는 주몽의 명령에 따른 군사의 최종 위치를 계산하는 알고리즘을 구현했습니다.
각 명령에 따른 좌표 업데이트를 통해 문제를 해결했습니다.
이와 같이 간단한 문제를 통해 기본적인 자료구조와 알고리즘의 활용을 이해할 수 있습니다.