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

코드(c++)
#include <iostream>
#include <string>
using namespace std;
int main() {
string direction;
cin >> direction;
// 초기 좌표 위치
int x = 0, y = 0;
// 북 동 남 서
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
// 초기 위치 북쪽에서 시작
int dir_num = 0;
for (int i = 0; i < direction.length(); i++) {
char dir_char = direction[i];
// 방향에 따른 인덱스 결정
if (dir_char == 'L')
dir_num = (dir_num + 3) % 4;
else if (dir_char == 'R')
dir_num = (dir_num + 1) % 4;
else if (dir_char == 'F') {
// 한 칸 이동
x += dx[dir_num];
y += dy[dir_num];
}
}
cout << x << " " << y << endl;
return 0;
}
코드 설명
dx, dy 테크닉을 이용하여 북동남서에 따른 x,y 좌표 이동 값을 배열에 저장한다.
입력받을 문자열을 direction으로 선언, 각 문자열의 인덱스 문자를 dir_chat로 선언한다.
해당 문자가 L이나 F라면 각각 시계방향 or 반시계방향으로 90도 회전하도록 한다.
만약 F라면 해당 방향에서 앞으로 한칸씩 이동해야하므로 dir_num 인덱스를 찾아 더해주면 된다.
'PS' 카테고리의 다른 글
[백준] 1602번: 나는야 포켓몬 마스터 이다솜 (2) | 2024.09.10 |
---|---|
[코드트리] 정수 명령 처리 5 (0) | 2024.09.07 |
[코드트리] dx dy technique / 방향에 맞춰 이동 (0) | 2024.09.05 |
[코드트리 조별과제] 삽입 정렬 구현 (0) | 2024.08.18 |
[코드트리 조별과제] 버블 정렬 구현 (0) | 2024.08.11 |