주의할 점저녁 전파 순서 정렬할 때, {민트 -> 초코 -> 우유 -> 초코우유 -> 민트우유 -> 민트초코 -> 민트초코우유} 가 아니라 {{민트 초코, 우유} -> {민트초코, 민트우유, 초코우유} -> {민트초코우유}} 로 묶인다.방어 상태는 저녁이 지나자마자 바로 풀린다.방어 상태인 대표자는 전파를 할 수 없다. 정답 코드import java.util.*;import java.lang.*;import java.io.*;public class Main { static int N, T; static Student[][] board; static int[] dx = {-1, 1, 0, 0}; static int[] dy = {0, 0, -1, 1}; static class Student implem..
주의할 점현재 위치(cx, cy)가 현재 이동 중인 정령의 탈출구이면서, 다음 위치(nx, ny)가 다른 정령의 골렘이어야 한다. 처음에는 탈출구 방향을 활용해서 계산하려다가 도저히 안 풀려서 그냥 각 정령 번호의 음숫값을 탈출구로 고정시켰다. 정답 코드import java.util.*;import java.lang.*;import java.io.*;public class Main { static int R, C, K; static int[][] board; static Fairy[] fairys; static int answer = 0; // 골렘의 출구 방향 정보 d는 0~3 사이의 수로 주어지며 각각 북 동 남 서 static int[] dx = {-1, 0, 1, 0}; static int[]..
힘들었던 점...board 상태 관리가 너무 힘들었다.. 집중력이 떨어졌을 때 풀어서 더 힘들었다유물을 획득하고 새로운 보물로 채워줘야 하기 때문에 유물 획득 위치를 저장해야 한다조각 채우는 우선순위랑 3x3 선택 우선순위가 다르다..조각을 채운 후 유물 획득이 가능하면 유물을 획득할 수 없을 때까지 연쇄 획득으로 들어간다 (while 처리) 정답 코드import java.util.*;import java.lang.*;import java.io.*;public class Main { static int K, M; static int[][] board; static int totalValue = 0; static int valueIndex = 0; static int[] dx = {0, 1, 0, -1};..
주의할 점루돌프가 산타에게 돌진했을 때랑, 산타가 루돌프에 돌진했을 때 발생한 충돌은 다르게 계산해야 한다. (C, D)루돌프는 상하좌우대각선으로 이동 가능하지만 산타는 상우하좌로만 이동 가능하다.기절 상태여도 충돌은 발생할 수 있으며, 산타가 루돌프를 들이박을 때는 이동 방향의 반대이니 주의해야 한다. 정답 코드import java.util.*;import java.lang.*;import java.io.*;public class Main { static int N, M, P, C, D; static int[][] board; static int rx, ry; static Santa[] santas; static int turn = 1; static class Santa { int number; ..
주의할 점연쇄반응으로 인해 밀쳐진 기사들 중 한명이라도 벽에 부딪히거나, 범위를 벗어나는 경우 이 일련의 과정을 없던 일로 함. 즉, 이번 명령은 취소된다.기사의 체력이 0이 되면 죽게 되고, 이 경우 명령이 내려져도 수행할 수 없으니 주의해야 한다. 정답 코드import java.util.*;import java.lang.*;import java.io.*;public class Main { static int L, N, Q; static int[][] bombBoard; static int[][] warriorBoard; static Warrior[] warriors; static ArrayList bombs; static int[] dx = {-1, 0, 1, 0}; static int[] dy =..
풀이처음에 정사각형을 만드는 기준이 난해해서 어떻게 해야할까 엄청 오래 고민했는데, N이 최대 10이라 변의 길이를 1씩 늘려가며 완전탐색 하였다. 만들어진 사각형 안에 출구와 플레이어가 있으면 바로 셀렉했다.그리고 이 문제 덕분에 이차원배열 회전의 상대좌표 기준을 제대로 이해했다.개인적인 견해지만 메두사 다음으로 어렵다.ㅜㅜ 정답 코드import java.util.*;import java.lang.*;import java.io.*;public class Main { static class Square implements Comparable { int leftX; int topY; int rightX; int bottomY; int size; boolean hasEscape; boolean..
틀린 이유포탑의 power가 0 이하(그 외에는 문제를 주석으로 정리해서 따라 구현했다. 정답 코드import java.io.*;import java.util.*;import java.lang.*;public class Main { static int N, M, K; static Top[][] board; static boolean[][] alive; static int day = 0; static boolean[][] attacked; static class Top { int power; int attackDay; int x; int y; public Top(int power , int attackDay, int x, int y) { this.power = power; this.atta..