본문 바로가기
[JAVA] 백준 1987 - 알파벳 https://www.acmicpc.net/problem/1987 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.function.BiPredicate;public class Main { static int alpha = 'A'; static int max = Integer.MIN_VALUE; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStrea.. 2025. 8. 19.
[JAVA] 백준 1967 - 트리의 지름 https://www.acmicpc.net/problem/1967트리를 이루는 정점의 개수 N과 N-1개의 간선의 개수가 주어지면, 두 정점을 뽑아 일자로 만들 때 가장 긴 길이를 구하는 문제이다.-> 정점 X와 정점 Y의 경로가 최장 경로일 때 경로의 길이 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;import java.util.stream.Collectors;import java.util.stream.IntStream;public class Main { public static void main(String[] args) throws IOExce.. 2025. 8. 18.
[JAVA] 백준 1753 - 최단경로 https://www.acmicpc.net/problem/1753정석적인 다익스트라를 이용하는 문제인데, input으로 주어지는 정점과 간선의 개수가 심상치 않았다.특이한 점으론 두 정점 A,B를 잇는 간선이 여러개가 있을 수 있다는 것이다.이러한 경우 다익스트라 알고리즘을 이용하는 부분 중 우선순위 큐에 간선을 삽입할 때, 목적지 정점의 가중치가 아직 초기화되지 않은 상태라면 동일한 간선(가중치만 다른)이 여러개 들어가 시간초과가 일어날 것 같아서 이를 해소하는 방법에 대해서 생각하게 되었다.일반적으로 정점 클래스를 선언할 때, ArrayList에 간선을 담아서 보관했는데 이런 경우 중복제거가 힘드므로 정점 멤버 변수 안에 HashMap을 선언하고, 간선 데이터를 읽으면서 해당 map에 를 삽입할 때.. 2025. 8. 13.
[JAVA] 백준 1504 - 특정한 최단경로 https://www.acmicpc.net/problem/1504특정 노드 2개를 반드시 지나는 최단거리를 구하는 문제이다.처음에 다익스트라를 생각했지만 필수노드 2개를 반드시 지나는 부분을 생각하지 못했는데, 질문게시판의 한 은인의 도움으로 목표 경로는 시작점 -> 필수노드1 -> 필수노드2 -> 끝점또는 시작점 -> 필수노드2 -> 필수노드1 -> 끝점의 2가지 경우의 수의 최솟값이라는 사실을 깨닫고시작점 -> 필수노드1, 필수노드1->필수노드2, 필수노드2 -> 끝점의3번의 다익스트라를 거쳐서 풀었다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arra.. 2025. 8. 12.