[BaekJoon] 3197번 - 백조의 호수 [Java][C++]
문제 링크 1. 문제 풀이 물과 닿은 얼음은 매일 녹을 때 며칠 후 두 백조가 만날 수 있는지 구하는 문제로 단순히 얼음을 녹이고 백조가 만날 수 있는지 찾는 방식을 반복하는 것으로는 시간 내에 해결할 수 없다. 호수의 각 얼음에 대해 해당 얼음이 며칠 뒤에 녹는지를 전부 구한 후 매개 변수 이분 탐색을 통해 두 백조가 만날 수 있는 날을 ...
문제 링크 1. 문제 풀이 물과 닿은 얼음은 매일 녹을 때 며칠 후 두 백조가 만날 수 있는지 구하는 문제로 단순히 얼음을 녹이고 백조가 만날 수 있는지 찾는 방식을 반복하는 것으로는 시간 내에 해결할 수 없다. 호수의 각 얼음에 대해 해당 얼음이 며칠 뒤에 녹는지를 전부 구한 후 매개 변수 이분 탐색을 통해 두 백조가 만날 수 있는 날을 ...
문제 링크 1. 문제 풀이 운동장의 둘레의 길이는 직사각형의 가로 두 변의 길이와 원의 둘레의 합과 같다. 2. 코드 1. 풀이 [Java] import java.io.*; public class Main { static final double PI = 3.141592; public static void ma...
문제 링크 1. 문제 풀이 원숭이는 기본적으로 상하좌우로만 움직일 수 있지만 최대 $K$ 번은 말처럼 움직일 수 있다. 최단 거리 BFS를 통해 해결할 수 있는데 이때 특정 좌표를 단순히 방문하는 것만 체크하는게 아니라 말처럼 몇 번 움직여서 방문했는지를 체크하면 두 움직임을 조합한 최단 거리를 구할 수 있다. 이를 위해 3차원 배열로 방문...
문제 링크 1. 문제 풀이 CCTV 한 대는 $N \times N$ 크기의 영역을 커버할 수 있다. 따라서 주어진 대회장의 가로에는 $R / N$ 을 올림 나눗셈한만큼 배치를 해야하고, 세로에는 $C / N$ 을 올림 나눗셈만큼 배치해야하며 둘의 곱으로 필요한 최소 CCTV 수를 구할 수 있다. 이때 CCTV의 수가 정수 타입 오버플로우가 ...
문제 링크 1. 문제 풀이 주어진 평면을 시계 방향으로 90도 돌리면 2차원 배열의 입력으로 처리할 수 있다. 이때 각 색종이를 의미하는 네 정수는 각각 색종이의 시작 행, 시작 열, 세로 길이, 가로 길이가 된다. 첫 번째 색종이부터 차지하는 영역을 2차원 배열에 마킹하면 다음 색종이가 이 값을 덮어씌우는 것으로 문제와 동일하게 색종이가 ...
문제 링크 1. 문제 풀이 각 버튼이 서로 배수 관계에 있어서 최소 조작을 하려면 지정된 시간이 큰 버튼부터 누르면 된다. 2. 코드 1. 풀이 [Java] import java.io.*; public class Main { public static void main(String[] args) throws IOExcep...
문제 링크 1. 문제 풀이 주어진 창고에서 익은 토마토 옆의 토마토는 다음 날 익은 토마토가 될 때 경과를 찾아야 하는 문제로 최단 거리를 구할 수 있는 BFS를 활용하면 해결할 수 있다. 초기 안 익은 토마토의 수와 익은 토마토의 좌표를 찾은 후 BFS에서 익은 토마토 옆에 있는 안 익은 토마토는 다음 날 익으므로 큐에 넣어주고 안 익은 ...
문제 링크 1. 문제 풀이 BaekJoon 7576번 - 토마토 문제에서 토마토가 수직으로도 쌓여있는 문제로 육방탐색을 활용하기만 하면 동일한 아이디어로 해결할 수 있다. 2. 코드 1. 풀이 [Java] import java.io.*; import java.util.*; public class Main { stati...
문제 링크 1. 문제 풀이 $1$ 부터 $49$ 사이의 수 중 하나인 $k$ 개의 수들에 대해 $6$ 개를 뽑는 모든 조합을 구하는 문제로 재귀를 활용해서 구하면 된다. 2. 코드 1. 풀이 [Java] import java.io.*; import java.util.*; public class Main { static...
문제 링크 1. 문제 풀이 초대할 사람은 상근이의 친구과 친구의 친구까지다. 상근이를 기준으로 거리가 2 이내인 모든 사람의 수를 구하면 되므로 최단 거리 BFS를 활용해서 개수를 세주었다. 2. 코드 1. 풀이 [Java] import java.io.*; import java.util.*; public class Main {...