[PCCP 모의고사 2회] 실습용 로봇 (C++)
https://school.programmers.co.kr/learn/courses/15009/lessons/121687
풀이
현재 어느 방향으로 가고 있는지를 표현하는 state 변수
를 이용해 풀어주었다. state를 char로 선언할까 고민했지만, 시계 방향 및 반시계 방향으로 돌리는 걸 표현하기 위해 int로 선언하고 dx와 dy를 이용해 값을 증감하는 방식으로 진행했다. 좌표값을 반환해야 해서 pair를 쓸까 싶었지만, 반환값이 vector
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <string>
#include <vector>
using namespace std;
int dx[4] = {0, 1, 0, -1}; // U, R, D, L
int dy[4] = {1, 0, -1, 0};
vector<int> solution(string command) {
vector<int> cur(2, 0);
int state = 0; // 0:U, 1:R, 2:D, 3:L
for(char c : command){
switch(c){
case 'R':
state == 3 ? state = 0 : state++;
break;
case 'L':
state == 0 ? state = 3 : state--;
break;
case 'G':
cur[0] += dx[state], cur[1] += dy[state];
break;
case 'B':
cur[0] -= dx[state], cur[1] -= dy[state];
break;
}
}
return cur;
}
This post is licensed under CC BY 4.0 by the author.