자바/코딩테스트
(5)
-
자바/코딩테스트2025.06.15
벨만 포드 알고리즘 문제의 여러 함정에 대한 고찰
벨만 포드 알고리즘 이란뭐 더이상 까먹을 일은 없겠지만, 정리를 하자면1. 정점의 수 - 1 만큼 싸이클을 돈다2. 어떤 싸이클이냐 하면 출발노드로 부터 도달 할 수 있는 노드에서 뻗는 간선을 통해 다른 노드로 가는 비용이 기존 비용 보다 싸다면 비용을 갱신 이건데,, 싸이클 안에서 어떤 노드의 간선 부터 확인 하는지는 중요하지 않다. 정점 수 - 1 만큼 싸이클을 돌기 때문에 모든 노드의 모든 간선을 확인 할 수 있다. 일단 벨만 포드 알고리즘을 써야한다는 건 떠올리기 쉬울 거 같다.특정 노드에서 각 노드로의 최단거리 구하기 + 간선 가중치에 음수가 있음그래서 떠올려야 되는건 맞음 함정이라고 하긴 그렇지만 뭐 넘겨야할 첫번째 고비갑자기 벨만 포드 알고리즘을 떠올릴 수 없었다면이게 문제인데 해결책은 없다..2 -
자바/코딩테스트2025.06.12
버퍼 입력 방식에 대한 고찰
백준을 풀다가,, 당연히 성능 차이는 알고리즘차이로 내야 되는거지 입력방식으로 차이를 내는 건 좀 정당하지 못하다고 생각해 오긴했는데, 어쨌든 버퍼 입력방식에 따른 성능 차이가 있다는 사실을 무시할 수 있는 것도 아니고 코드를 보니까 그렇게 어려운 방식도 아닐 뿐더러 오히려 이때까지 입력 방식으로 활용해온 방법이 내가 무지성으로 사용한게 아닌가하는 느낌이 들어 정리해 본다. 기존방식import java.io.*;import java.util.StringTokenizer;public class Main { static private BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static private Str..1 -
자바/코딩테스트2023.11.08
[백준 2437] 저울
https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 예제 문제는 이렇게 부분합을 구하여 해결 할 수 있다. 4번째 데이터인 3까지의 부분합은 7이다. 만약 1에서 4번째 데이터의 부분합인 7까지 모두 만들 수 있다면 다음 수인 6을 활용해서 1+6, 2+6, 3+6, ... ,7+6 즉 13까지 만들어 낼 수 있다.만약 다음수가 6이 아니라 8이었다면 만들어낼 수 있는 수가 1+8 = 9 부터이기 때문에 8을 만들어 낼 수 없다. 즉 이전 데이터까지의 부분합..0 -
자바/코딩테스트2023.11.06
삼성 B형에서 본 것만 같은 알고리즘 [세그먼트 트리, 슬라이딩 윈도우]
세그먼트트리 (백준 2042) : 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 슬라이딩 윈도우 (백준 11003) : https://www.acmicpc.net/problem/11003 11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, ..0
'자바/코딩테스트' 카테고리의 글 목록
'자바/코딩테스트' 카테고리의 글 목록