슈콩

[BOJ] 15685 드래곤 커브 본문

Algorithms/Baekjoon

[BOJ] 15685 드래곤 커브

shukong 2025. 12. 3. 00:05

 

 

[문제]

https://www.acmicpc.net/problem/15685

 

 

[소스 코드]

import java.io.*;
import java.util.*;

public class Main {
	static int[] dx = {1,0,-1,0};
	static int[] dy = {0,-1,0,1};
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		int n = Integer.parseInt(br.readLine());
		boolean[][] map = new boolean[101][101];
		for(int i=0;i<n;i++) {
			st = new StringTokenizer(br.readLine());
			int x = Integer.parseInt(st.nextToken());
			int y = Integer.parseInt(st.nextToken());
			int d = Integer.parseInt(st.nextToken());
			int g = Integer.parseInt(st.nextToken());
			map[x][y] = true;
			x += dx[d];
			y += dy[d];
			List<Integer> list = new LinkedList<>();
			list.add(d);
			map[x][y] = true;
			for(int j=0;j<g;j++) {
				int size = list.size();
				for(int s=size-1;s>=0;s--) {
					int dir = list.get(s);
					dir = (dir+1) % 4;
					x += dx[dir];
					y += dy[dir];
					list.add(dir);
					map[x][y] = true;
				}
			}
		}
		int result = 0;
		for(int i=0;i<100;i++) {
			for(int j=0;j<100;j++) {
				if(map[i][j] && map[i+1][j] && map[i][j+1] && map[i+1][j+1]) result++;
			}
		}
		System.out.println(result);
	}
}

'Algorithms > Baekjoon' 카테고리의 다른 글

[BOJ] 5373 큐빙  (0) 2025.12.04
[BOJ] 15686 치킨 배달  (0) 2025.12.03
[BOJ] 15684 사다리 조작  (0) 2025.12.02
[BOJ] 15683 감시  (0) 2025.12.02
[BOJ] 14891 톱니바퀴  (0) 2025.12.01