본문 바로가기

문제풀이/백준83

[JAVA] BOJ 백준 17142번 - 연구소 3 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고, www.acmicpc.net 2. 내가 푼 방법 경우의 수 + BFS 알고리즘 문제이다. 따라서 활성 바이러스로 만들 수 있는 경우의 수에서 최소 시간을 가질 수 있는 결과를 뽑아내면 된다. 경우의 수를 만들어내는 choice 함수에서 base condition만 제대로 설정하는 것만 주의하면 될 것 같다. 3. 자바 코드 깃허브 풀이 주소 : https://github... 2024. 1. 2.
[JAVA] BOJ 백준 1167번 - 트리의 지름 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 2. 내가 푼 방법 임의의 노드(A)에서 가장 먼 노드(B)를 찾는다. 그 후, 해당 노드(B)에서 다시 가장 먼 노드(C)를 찾을 경우에 두 번의 그래프 탐색으로 트리의 지름을 찾을 수 있다. 3. 자바 코드 깃허브 풀이 주소 : https://github.com/geujeog/BOJ/blob/main/B1167.jav.. 2024. 1. 2.
[JAVA] BOJ 백준 1520번 - 내리막 길 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/1520 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net 2. 내가 푼 방법 처음에는 현재보다 작은 숫자만으로 이동하니까 시간초과 안나겠지 하면서 풀었는데.. 아니었다. dp[0][0] = 1; 이라는 base condition 설정해두고 움직일 수 있는 경로 개수를 저장해두는 용도로 dp 배열을 사용했다. 따라서 지도에서 오른쪽 제일 아래 (N-1, M-1)에서 (0, 0)까지 도달할 수 있는 경.. 2023. 11. 29.
[JAVA] BOJ 백준 2261번 - 가장 가까운 두 점 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/2261 2261번: 가장 가까운 두 점 첫째 줄에 자연수 n(2 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 차례로 각 점의 x, y좌표가 주어진다. 각각의 좌표는 절댓값이 10,000을 넘지 않는 정수이다. 여러 점이 같은 좌표를 가질 수도 www.acmicpc.net 2. 내가 푼 방법 다른 분의 풀이를 참고해 푼 문제이다. 음.. 내가 이해한대로 간단하게 설명하면, x의 중간 값을 기준으로 x점의 최단 거리를 구하고, x의 최단 거리가 된 적이 있는 좌표의 y점의 최단 거리를 구한다. 이 과정이 x의 중간 값을 기준으로 오른쪽과 왼쪽 집합을 가지면서 재귀한다. 따라서.. 2023. 11. 29.
[JAVA] BOJ 백준 2042번 - 구간 합 구하기 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/2042 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net 2. 내가 푼 방법 다른 분들의 풀이를 보고 푼 문제이다. 구간에 맞는 값을 구할 때 세그먼트 트리에 어떻게 데이터가 저장되는지 이해했다. 먼저 트리를 세팅하는 initTree() 함수는 리프 노드가 채워지는 상태를 base condition으로 두고 재귀 형식으로 구현했다. p.. 2023. 11. 28.
[JAVA] BOJ 백준 1865번 - 웜홀 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/1865 1865번: 웜홀 첫 번째 줄에는 테스트케이스의 개수 TC(1 ≤ TC ≤ 5)가 주어진다. 그리고 두 번째 줄부터 TC개의 테스트케이스가 차례로 주어지는데 각 테스트케이스의 첫 번째 줄에는 지점의 수 N(1 ≤ N ≤ 500), www.acmicpc.net 2. 내가 푼 방법 그래프 문제에서 음수 가중치를 가지고, 사이클이 존재하고, 최단 경로를 확인해야 할 경우에는 벨만포드 알고리즘을 이용해야 한다. 매번 모든 간선을 확인함으로써 사이클이 발생하는지 알 수 있기 때문에, O(V+E)의 시간복잡도를 가진다. 최단 경로가 갱신됨을 확인해야 하므로 Integer.MAX_VALUE .. 2023. 11. 24.