[백준] 민서의 응급 수술 - Java 20955
·
PS/백준
Union-Find 알고리즘 유니온 파인드 알고리즘을 사용하는 문제이다.오랜만에 유니온 파인드를 사용한 것 같다. 이 문제는 연결을 끊거나 연결을 생성함으로 하나의 트리를 형성하는 것이다. 따라서, 입력받을 때 사이클이 존재한다면 해당 연결을 끊어야 하므로, 값을 증가시켜주고만약, 연결이 끊어져있는 곳이 있다면 이어줘야 하므로 union으로 합처준 뒤 값을 증가시킨다. 이때, 나는 1(최소값)으로 유니온 파인드가 진행되게 했으므로, 1이 아닌 경우 이어주게 해줬다.  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public clas..
[백준] 같이 눈사람 만들래? - Python 20366
·
PS/백준
# 5# 3 5 2 5 9## 2 3 5 5 9#import sysinput = sys.stdin.readlineT = int(input().rstrip())nums = list(map(int, input().split()))nums.sort()result = sys.maxsizefor i in range(len(nums)): for j in range(i + 3, len(nums)): l = i + 1 r = j - 1 while l abs(temp): result = abs(temp) if temp
[백준] 중량제한 - Java 1939
·
PS/백준
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import java.util.StringTokenizer;public class BOJ1939 { /** * N(2 ≤ N ≤ 10,000)개의 섬으로 이루어진 나라가 있다. * 서로 같은 두 섬 사이에 여러 개의 다리가 있을 수도 있으며, 모든 다리는 양방향이다. * 한 번의 이동에서 옮길 수 있는 물품들의 중량의 최댓값을 구하는 프로그램을 작성하시오. * 첫째 줄에 N, M(1 ≤ M ≤ 100,000)이 주어진다. ..
[백준] 합이 0인 네 정수 - Java 7453
·
PS/백준
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class BOJ7453 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[][] abcd = new int[N][4];..
[백준] 음악프로그램 - Java 2623
·
PS/백준
간단한 위상 정렬 문제이다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class BOJ2623 { static int N; static int M; static List> graph; static int[] inDegree; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer ..
[백준] 오아시스 재결합 - 3015 Python
·
PS/백준
플레5 문제인 오아시스 재결합 문제이다. 스택을 사용하여 문제를 풀었다. 겁도 없이 플레5 문제를 풀게 되었는데 스택을 사용한다는 것을 알고 있으니 생각보다는 괜찮았던 것 같다. (몇 시간 걸리긴 했지만) 확실히 Java 보다는 Python이 좀 더 간편한 것 같다. 자바로 푼 건 파이썬으로, 파이썬으로 푼건 자바로 풀어봐야겠다. # 두 사람 A와 B가 서로 볼 수 있으려면, 두 사람 사이에 A 또는 B보다 키가 큰 사람이 없어야 한다. # 줄에 서있는 사람의 키가 주어졌을 때, 서로 볼 수 있는 쌍의 수를 구하는 프로그램 import sys # 입력 N(1