목록APS (85)
최's 먹공로그
https://www.acmicpc.net/problem/9441 9441번: Cash Cow The input will consist of multiple games, each played with a new board. For each game, the input begins with a number T that denotes the number of turns that the player will be making, with 1 ≤ T ≤ 20. Following that will be an initial board configurat www.acmicpc.net 1. B 파란색, R 빨간색, Y 노란색 2. 클러스터 : 색상이 일치하는 수평 수직 이웃 3. 표시된 그리드 셀이 하나 또는 두 개의 ..
https://www.acmicpc.net/problem/18809 18809번: Gaaaaaaaaaarden 첫째 줄에 정원의 행의 개수와 열의 개수를 나타내는 N(2 ≤ N ≤ 50)과 M(2 ≤ M ≤ 50), 그리고 초록색 배양액의 개수 G(1 ≤ G ≤ 5)와 빨간색 배양액의 개수 R(1 ≤ R ≤ 5)이 한 칸의 빈칸을 사이에 두 www.acmicpc.net 1. 배양액은 매 초마다 이전에 배양액이 도달한 적이 없는 인접한 땅으로 퍼져간다 2. 초록색 배양액과 빨간색 배양액이 동일한 시간에 도달한 땅에서는 꽃 -> 꽃이 핀 곳에서는 배양액이 퍼지지 않는다 3. 배양액을 남김없이 사용해야 한다 4. 꽃의 최대 개수를 구하자 5. 입력 N, M, G, R 행, 열, 초록색 배양액, 빨간색 배양액 ..
1. d1, d2, x, y로 지정 가능한 모든 경우를 본다. (일단 브루트포스) 2. 선거구를 나눈다. (1) 경계선에 5 표시 (2) 경계선이 아닌 영역부터 bfs 돌면서 5 경계선 외부를 따로 표시 (3) 표시된 영역 제외하고 나머진 다 5 (4) 나머지 1~4 선거구는 규칙 따라서 표시 3. 최소값 을 구해준다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class BOJ17779_게리멘더링2 { static int[][] map, visited; static ..
1. 현재 위치 청소 -> visited = true 2. 현재 위치에서 바로 왼쪽 청소가능? - 방향 바꾸기 , 한 칸 전진 후 다시 (1)번 진행 3. 현재 위치에서 바로 왼쪽 청소불가능? - 방향만 바꾸기 후 다시 (2)번 진행 4. 4 방향 모두 확인 했을 때 청소 불가능? - 그 때의 방향에서 한 칸 후진 후 다시 (2)번 진행 5. 후진도 불가능? - 종료 6. visited에 있는 true의 개수가 로봇 청소기가 청소한 공간임 first() : 현재 위치를 청소하는 함수 second() : (1) 현재방향과 현재위치에서 4 방향 모두 청소가 가능한지 검사 (2) 현재방향과 현재위치를 기준으로 바로 왼쪽이 청소가 가능하면 방향과 위치 갱신 다시 first()로 (3) 바로 왼쪽이 청소가 불가능..
※ 음수좌표의 경우를 생각 못함 1. 입력받은 좌표를 더해서 하나의 상수로 생각 2. 상근위치 + 맥주 최대거리 계산 >= 페스티벌 위치 이면 happy 3. 상근위치 + 맥주 최대거리 계산 >= 편의점 중 가장 멀리 갈 수 있는 편의점 이면 상근위치를 해당 편의점 위치로 갱신 4. 갈 수 없는 경우는 현재위치에서 페스티벌 장소로 갈 수 없고 편의점으로도 갈 곳이 없을 때 sad import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Collections; import java.util.StringTokenizer; pu..
1. DFS로 몇덩어리인지 검사 2. BFS로 얼음녹여 3. 반복 4. return 되는 경우는 (1) 덩어리가 2 이상 되는경우 (2) 얼음이 다 녹았는데 (1)인 경우로 return 안된 경우 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class BOJ2573_빙산 { static int[][] map, map_copy; static int[][] visit; static Queue q; static int yea..
1. 이건 그냥 dfs든 bfs든 돌리면 되는 문제 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BOJ2468_안전영역 { static int n; static int[][] map = new int[102][102]; static int[][] visited = new int[102][102]; static int[] dx = {-1,0,1,0}; static int[] dy = {0,-1,0,1}; public static void dfs(int x, int y, int rain) { int nx ..
1. 숨바꼭질과 완전 똑같음 2. 큐에 front, back으로 인덱스 컨트롤 해주면서 front에 있는거를 Up, Down 해주면서 G 층에 간 경우를 찾기 3. Up의 경우 최대층을 넘길 수 없음 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BOJ5014_스타트링크 { static int F, S, G, U, D, front = -1, back = -1; static int[] Q, visit, d; public static void main(String[] args) throws IOExcepti..