반응형
📖 문제
8911번: 거북이
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 컨트롤 프로그램이 주어진다. 프로그램은 항상 문제의 설명에 나와있는 네가지 명령으로만 이루어져
www.acmicpc.net
💡 풀이 방식
• 구현, 시뮬레이션
가장 멀리 위치한 두 점을 구하기 위해, 가장 작은 x와 y, 가장 큰 x와 y를 구한다.
그리고 Math.abs(maxX - maxY) * (minX - minY) 한 결과를 구해 출력한다.
🔺 코드
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
import java.util.*;
import java.io.*;
public class Main {
static int[] dx = {0, -1, 0, 1}; // 북서남동
static int[] dy = {1, 0, -1, 0};
static int T;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
T = Integer.parseInt(br.readLine());
while(T --> 0) {
move(br.readLine().toCharArray());
}
System.out.println(sb.toString());
}
private static void move(char[] ch) {
int x = 0;
int y = 0;
int dir = 0;
int minX=x, minY=y, maxX=x, maxY=y;
for(char c : ch) {
if(c == 'F') { // 한 눈금 앞으로
x += dx[dir];
y += dy[dir];
}
else if(c == 'B') { // 한 눈금 뒤로
int tmpDir = (dir + 2) % 4;
x += dx[tmpDir];
y += dy[tmpDir];
}
else if(c == 'L') { // 왼쪽으로 90도 회전
dir = (dir + 1) % 4;
}
else if(c == 'R') { // 오른쪽으로 90도 회전
dir = (dir - 1 + 4) % 4;
}
// 가장 작고 큰 x,y값 갱신하기
minX = Math.min(minX, x);
minY = Math.min(minY, y);
maxX = Math.max(maxX, x);
maxY = Math.max(maxY, y);
}
sb.append(Math.abs(minX - maxX) * Math.abs(minY - maxY)).append("\n");
}
}
|
cs |
💦 어려웠던 점
- 거북이가 이동하면서 지난 모든 점을 리스트에 넣고 그 중 2객의 거리의 최댓값을 구하려고 했는데 그게 아니고,
그냥 이동하면서 가장 작은 x와 y, 가장 큰 x와 y를 구해 Math.abs(maxX - maxY) * (minX - minY) 한 결과를 구하면 된다.
- 이렇게 쉬운 문제를 헷갈리고 오래 걸리다니,,,,,,,, 반성해라 진짜
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
백준 8911번 거북이 [JAVA]
8911번: 거북이 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 컨트롤 프로그램이 주어진다. 프로그램은 항상 문제의 설명에 나와있는 네가지 명령으
javaju.tistory.com
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 1713번: 후보 추천하기 (0) | 2024.03.31 |
---|---|
[백준/JAVA] 5212번: 지구 온난화 (0) | 2024.03.27 |
[백준/JAVA] 14594번: 동방 프로젝트 (Small) (0) | 2024.03.27 |
[백준/JAVA] 21611번: 마법사 상어와 블리자드 (0) | 2024.03.25 |
[백준/JAVA] 20056번: 마법사 상어와 파이어볼 (0) | 2024.03.23 |