Problem Solving/BOJ

    [백준, BOJ 5549] 행성 탐사 (java)

    https://www.acmicpc.net/problem/5549 5549번: 행성 탐사 상근이는 우주선을 타고 인간이 거주할 수 있는 행성을 찾고 있다. 마침내, 전 세계 최초로 인간이 거주할 수 있는 행성을 찾았다. 이 행성은 정글, 바다, 얼음이 뒤얽힌 행성이다. 상근이는 이 www.acmicpc.net 메모리: 103,608 KB , 시간: 1,116 ms 사용 알고리즘: 누적 합 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception{ Buf..

    [백준, BOJ 13905] 세부 (java)

    https://www.acmicpc.net/problem/13905 13905번: 세부 첫 번째 줄에는 섬에 존재하는 집의 수 N(2≤N≤100,000)와 다리의 수 M(1≤M≤300,000)이 주어진다. 두 번째 줄에는 숭이의 출발 위치(s)와 혜빈이의 위치(e)가 주어진다. (1≤s, e≤N, s≠e). 다음 M개의 줄 www.acmicpc.net 메모리: 128,500 KB , 시간: 908 ms 사용 알고리즘: 데이크스트라, 그래프 탐색, 그래프 이론, 분리 집합, 자료 구조 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.PriorityQueue; ..

    [백준, BOJ 17179] 케이크 자르기 (java)

    https://www.acmicpc.net/problem/17179 17179번: 케이크 자르기 첫 번째 줄에 자르는 횟수가 담긴 목록의 길이 N과 자를 수 있는 지점의 개수 M, 그리고 롤 케이크의 길이인 정수 L이 주어진다. (1 ≤ N ≤ M ≤ 1,000, 1 < L ≤ 4,000,000) 다음 M줄에 걸쳐 자를 수 있는 www.acmicpc.net 메모리: 19,392 KB , 시간: 248 ms 사용 알고리즘: 이분 탐색, 매개 변수 탐색 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(S..

    [백준, BOJ 20955] 민서의 응급 수술 (java)

    https://www.acmicpc.net/problem/20955 20955번: 민서의 응급 수술 민서는 강원대학교 컴퓨터공학과의 신임 교수이다. 그녀가 저술한 효율적인 택배 배달을 위한 최적 경로 설계에 관한 연구 논문은 아직도 널리 인용되고 있다. 오늘도 열심히 강의를 하던 민서 www.acmicpc.net 메모리: 39,596 KB , 시간: 388 ms 사용 알고리즘: 유니온 파인드, 트리, 그래프 탐색, 그래프 이론 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int[] parent; public static voi..

    [백준, BOJ 1766] 문제집 (java)

    https://www.acmicpc.net/problem/1766 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net 메모리: 45,564 KB , 시간: 584 ms 사용 알고리즘: 위상 정렬, 우선순위 큐, 그래프 이론, 자료 구조, 방향 비순환 그래프 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main..

    [백준, BOJ 17396] 백도 (java)

    https://www.acmicpc.net/problem/17396 17396번: 백도어 첫 번째 줄에 분기점의 수와 분기점들을 잇는 길의 수를 의미하는 두 자연수 N과 M이 공백으로 구분되어 주어진다.(1 ≤ N ≤ 100,000, 1 ≤ M ≤ 300,000) 두 번째 줄에 각 분기점이 적의 시야에 보이는 www.acmicpc.net 메모리: 134,104 KB , 시간: 992 ms 사용 알고리즘: 데이크스트라, 그래프 이론, 최단 경로 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.PriorityQueue..

    [백준, BOJ 18866] 젊은 날의 생이여 (java)

    https://www.acmicpc.net/problem/18866 18866번: 젊은 날의 생이여 욱제의 젊은 날이 될 수 있는 최대 기간, 즉 문제의 조건을 만족할 수 있는 최대의 1 ≤ K K+1~N 구간의 최대 행복도 * 1~K 구간의 최대 피로도 < K+1~N 구간의 최소 피로도 * 이를 만족하는 K를 찾으면 된다. * * u,v가 0인 경우에는 항상 최선의 선택지를 선택해주면 된다. * 최선의 선택지란 * 1~K 구간의 최소 행복도를 낯추지 않고, K+1~N 구간의 최대 행복도를 높이지 않는 것. * 1~K 구간의 최대 피로도를 높이지 않고, K+1~N 구간의 최소 피로도를 낮추지 않는 것. * 이를 위해서 0이 나온 경우 구간 최소,최대값을 구할 때 이전 구간의 최소최대값을 그대로 사용한다...

    [백준, BOJ 4386] 별자리 만들기 (java)

    https://www.acmicpc.net/problem/4386 4386번: 별자리 만들기 도현이는 우주의 신이다. 이제 도현이는 아무렇게나 널브러져 있는 n개의 별들을 이어서 별자리를 하나 만들 것이다. 별자리의 조건은 다음과 같다. 별자리를 이루는 선은 서로 다른 두 별을 일 www.acmicpc.net 메모리: 14,540 KB , 시간: 140 ms 사용 알고리즘: 그래프 이론, 최소 스패닝 트리 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.StringTokenizer; public class..

    [백준, BOJ 18114] 블랙 프라이데이 (java)

    https://www.acmicpc.net/problem/18114 18114번: 블랙 프라이데이 첫 번째 줄에 물건의 개수 N과 제시하는 무게 C가 공백으로 구분되어 주어진다. (1 ≤ N ≤ 5,000, 1 ≤ C ≤ 108, N과 C는 양의 정수) 다음 줄에는 N개의 물건 각각의 무게 w가 공백으로 구분되어 주어진 www.acmicpc.net 메모리: 113,008 KB , 시간: 276 ms 사용 알고리즘: 브루트포스 알고리즘 내 생각 수의 중복이 없고 메모리 제한이 넉넉해서 boolean 배열을 만들어 인덱스에 해당하는 값이 있는지 체크해두고 2중 for문으로 해결했다. import java.io.BufferedReader; import java.io.InputStreamReader; impor..

    [백준, BOJ 19542] 전단지 돌리기 (java)

    https://www.acmicpc.net/problem/19542 19542번: 전단지 돌리기 현민이는 트리 모양의 길 위에서 오토바이를 타고 전단지를 돌리려고 한다. 현민이의 목표는 케니소프트에서 출발하여 모든 노드에 전단지를 돌리고, 다시 케니소프트로 돌아오는 것이다. 현민 www.acmicpc.net 메모리: 63,420 KB , 시간: 568 ms 사용 알고리즘: 깊이 우선 탐색, 그래프 이론, 그래프 탐색, 트리 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { static int D..