문제
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
실행 결과
코드(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 |