Problem Solving
[Code Tree - Novice] 방향에 맞춰 이동(dx, dy 테크닉)
Oh Seokjin
2021. 8. 8. 13:35
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 (codetree.ai)
📚 문제 확인
- 이동할 횟수, 방향, 거리가 입력으로 주어진다.
- 이동을 완료한 후 최종 좌표를 출력
📝 입출력 예시
🔍 문제 분석
- 동서남북의 특정 방향으로 이동하는 경우 dx, dy 테크닉을 사용하면 코드가 간결해짐
- 코드가 간결해지면, 이를 읽는 사람의 이해를 돕고 피로를 덜어줄 수 있음
-
# 동서남북 순 dx = [1, -1, 0, 0] dy = [0, 0, -1, 1]
✅ 최종 풀이
- 어느 방향으로 이동하는지 파악했다면, 이동 거리를 곱하여 좌표값 연산
order = []
step = []
cnt = int(input())
for _ in range(cnt):
temp1, temp2 = input().split()
order.append(temp1)
step.append(int(temp2))
dx = [1, -1, 0, 0]
dy = [0, 0, -1, 1]
x, y = 0, 0
direction = 0
for i in range(cnt):
if order[i] == "E":
direction = 0
elif order[i] == "W":
direction = 1
elif order[i] == "S":
direction = 2
elif order[i] == "N":
direction = 3
x += dx[direction] * step[i]
y += dy[direction] * step[i]
print(x, y)