반응형
1. 문제 정의
2. 문제 접근
명령어에 따라 움직여주는 함수만 잘 짜주면 될 것 같다.
3. 문제 풀이
1. x, y, dir 세가지 변수를 가지는 point class 를 정의한다.
2. for 문을 돌면서 명령어를 하나씩 실행한다.
3. 정답을 출력한다.
4. 코드
import java.util.*;
class Solution {
int[] dx = {0, 1, 0, -1};
int[] dy = {1, 0, -1, 0};
Point point;
public void move(char command) {
switch (command) {
case 'R':
point.dir = (point.dir + 1) % 4;
break;
case 'L':
point.dir = (point.dir + 3) % 4;
break;
case 'G':
point.x += dx[point.dir];
point.y += dy[point.dir];
break;
case 'B':
point.x -= dx[point.dir];
point.y -= dy[point.dir];
}
}
public class Point {
int x, y, dir;
Point(int x, int y, int dir) {
this.x = x;
this.y = y;
this.dir = dir;
}
}
public int[] solution(String command) {
int[] answer = new int[2];
point = new Point(0, 0, 0);
for (int i = 0; i < command.length(); i++) move(command.charAt(i));
answer[0] = point.x;
answer[1] = point.y;
return answer;
}
}
5. 회고
'L' 과 'R' 일 때 방향전환을 어떻게 할지 고민을 많이 하게 되는 문제다. 아직 구현 문제는 어렵다....
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
PCCP 모의고사 2회 - 카페 확장 (1) | 2023.02.18 |
---|---|
PCCP 모의고사 2회 - 신입사원 교육 (0) | 2023.02.18 |
PCCP 모의고사 1회 - 유전법칙 (0) | 2023.02.18 |
PCCP 모의고사 1회 - 체육대회 (0) | 2023.02.18 |
PCCP 모의고사 1회 - 외톨이 알파벳 (0) | 2023.02.16 |