[백준] 8911번: 거북이 (Java)
1. 문제설명2차원 평면에서 거북이 로봇에게 내릴 수 있는 명령은 F(한 눈금 앞으로), B(한 눈금 뒤로), L(왼쪽으로 90도 화전, 방향만 바꿈), R(오른쪽으로 90도 회전, 방향만 바꿈)이 있다. 거북이가 지나간 영역을 모두 포함할 수 있는 가장 작은 직사각형의 넓이를 구하는 문제이다.시간 제한: 1초메모리 제한: 128MB 2. 접근 방식방향 배열 `dx`, `dy` 를 사용한다. (북동남서 순서)입력에 따른 좌표 게산과 방향 전환을 통해 거북이가 이동하는 영역의 최대/최소 좌표를 구한다.입력에 따른 좌표 계산F, B ⇒ x, y 좌표를 현재 방향에 따라 좌표 계산입력에 따른 방향 전환L ⇒ 방향 인덱스 : 3→2, 2→1, 1→0, 0→3 ⇒ `(g + 3) % 4`R ⇒ 방향 인덱스: 0→..
2024. 9. 18.
[백준] 15685번: 드래곤 커브 (Java)
1. 문제설명드래곤 커브는 시작 점(x, y)에서 주어진 방향으로 직선을 그린 후, 특정 규칙에 따라 회전하며 곡선을 만들어낸다. 방향(d)과 세대(g)가 주어지면, 해당 드래곤 커브를 그린 후, 그리는 과정에서 만들어지는 1x1 정사각형이 몇 개인지 구하는 문제이다.(0 ≤ x, y ≤ 100, 0 ≤ d ≤ 3, 0 ≤ g ≤ 10)드래곤 커브의 규칙은 주어진 방향으로 1세대 드래곤 커브를 그리고, 세대별로 현재까지 그린 선분들을 뒤집은 후 90도로 회전시킨 뒤, 이를 이어서 그리는 방식이다.시간 제한: 1초메모리 제한: 512MB 2. 접근 방식참고: https://dublin-java.tistory.com/34방향 전환 (90도)0 → 1, 1 → 2, 2 → 3, 3 → 0위를 식으로 전환하면 ..
2024. 9. 17.