문제
실행 결과
코드(c++)
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
cin >> n;
// 초기 좌표 위치
int x = 0, y = 0;
// 동서남북에 따른 좌표의 차 (dx, dy 테크닉 활용)
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, -1, 1};
for (int i = 0; i < n; i++) {
string direction;
int distance;
cin >> direction >> distance;
int dir_num;
// 방향에 따른 인덱스 결정
if (direction == "E")
dir_num = 0;
else if (direction == "W")
dir_num = 1;
else if (direction == "S")
dir_num = 2;
else if (direction == "N")
dir_num = 3;
x += dx[dir_num] * distance;
y += dy[dir_num] * distance;
}
cout << x << " " << y << endl;
return 0;
}
코드 설명
dx, dy 테크닉을 이용하여 동서남북에 따른 x,y 좌표 이동 값을 배열에 저장한다.
입력받은 방향에 따라 배열 인덱스 값을 받아 거리만큼 이동하도록 반복문을 돌려준다!
상하좌우 or 동서남북과 같이 패턴이 정해져 있는 좌표 값을 다룰 때 코드를 간결히 작성할 수 있다😁
'PS' 카테고리의 다른 글
[코드트리] 정수 명령 처리 5 (0) | 2024.09.07 |
---|---|
[코드트리] 문자에 따른 명령 2 (0) | 2024.09.06 |
[코드트리 조별과제] 삽입 정렬 구현 (0) | 2024.08.18 |
[코드트리 조별과제] 버블 정렬 구현 (0) | 2024.08.11 |
[코드트리] 격자로서의 2차원 배열: 동전이 있는 위치 (0) | 2024.07.14 |