Problem Solving/BOJ
[백준, BOJ 14567] 선수과목 (Prerequisite) (java)
https://www.acmicpc.net/problem/14567 14567번: 선수과목 (Prerequisite) 3개의 과목이 있고, 2번 과목을 이수하기 위해서는 1번 과목을 이수해야 하고, 3번 과목을 이수하기 위해서는 2번 과목을 이수해야 한다. www.acmicpc.net 메모리: 126,016 KB , 시간: 580 ms 사용 알고리즘: 방향 비순환 그래프, 다이나믹 프로그래밍, 그래프 이론, 위상 정렬 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static int N; static ArrayList preSubject; static int[] p..
[백준, BOJ 16986] 인싸들의 가위바위보 (java)
https://www.acmicpc.net/problem/16986 16986번: 인싸들의 가위바위보 두 사람이 같은 손동작을 내어 무승부가 발생할 경우 경기 진행 순서상 뒤인 사람이 이긴 것으로 간주함에 다시 한 번 유의한다. 구체적으로, 경기 진행 순서는 지우, 경희, 민호 순으로 고정되 www.acmicpc.net 메모리: 17,012 KB , 시간: 188 ms 사용 알고리즘: 백트래킹, 브루트포스 알고리즘, 구현 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int N, K; static int[][] A; static..
[백준, BOJ 1034] 램프 (java)
https://www.acmicpc.net/problem/1034 1034번: 램프 첫째 줄에 N과 M이 주어진다. N은 행의 개수이고, M은 열의 개수이다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 램프의 상태가 주어진다. 1이 켜져있는 상태이고, 0이 꺼져 www.acmicpc.net 메모리: 14,228 KB , 시간: 128 ms 사용 알고리즘: 애드 혹, 브루트포스 알고리즘 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws ..
[백준, BOJ 1613] 역사 (java)
https://www.acmicpc.net/problem/1613 1613번: 역사 첫째 줄에 첫 줄에 사건의 개수 n(400 이하의 자연수)과 알고 있는 사건의 전후 관계의 개수 k(50,000 이하의 자연수)가 주어진다. 다음 k줄에는 전후 관계를 알고 있는 두 사건의 번호가 주어진다. www.acmicpc.net 메모리: 37,724 KB , 시간: 536 ms 사용 알고리즘: 플로이드-워셜, 그래프 이론, 최단 경로 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) t..
[백준, BOJ 1507] 궁금한 민호 (java)
https://www.acmicpc.net/problem/1507 1507번: 궁금한 민호 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에 각각의 도시 사이에 이동하는데 필요한 시간이 주어진다. A에서 B로 가는 시간과 B에서 A로 가는 시간은 같다. 또, A와 B www.acmicpc.net 메모리: 14,352 KB , 시간: 124 ms 사용 알고리즘: 플로이드-워셜, 그래프 이론, 최단 경로 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] ..
[백준, BOJ 10713] 기차 여행 (java)
https://www.acmicpc.net/problem/10713 10713번: 기차 여행 JOI나라에는 N개의 도시가 있고, 각 도시에 1,2,...,N까지의 번호를 갖고 있다. 그리고, 철도가 N-1개 있고, 각 철도에 1,2,...N-1의 번호를 갖고 있다. 철도 i (1 ≦ i ≦ N − 1)는 도시 i과 도시 i+1을 양방 www.acmicpc.net 메모리: 55,748 KB , 시간: 548 ms 사용 알고리즘: 누적 합 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] ..
[백준, BOJ 14621] 나만 안되는 연애 (java)
https://www.acmicpc.net/problem/14621 14621번: 나만 안되는 연애 입력의 첫째 줄에 학교의 수 N와 학교를 연결하는 도로의 개수 M이 주어진다. (2 ≤ N ≤ 1,000) (1 ≤ M ≤ 10,000) 둘째 줄에 각 학교가 남초 대학교라면 M, 여초 대학교라면 W이 주어진다. 다음 M개의 www.acmicpc.net 메모리: 20,416 KB , 시간: 232 ms 사용 알고리즘: 그래프 이론, 최소 스패닝 트리 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class M..
[백준, BOJ 1300] K번째 수 (java)
https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 메모리: 14,588 KB , 시간: 180 ms 사용 알고리즘: 이분 탐색, 매개 변수 탐색 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception{ BufferedRea..
[백준, BOJ 4933] 뉴턴의 사과 (java)
https://www.acmicpc.net/problem/4933 4933번: 뉴턴의 사과 각 테스트 케이스에 대해서, 두 트리가 동등하면 true를, 아니면 false를 출력한다. www.acmicpc.net 메모리: 14,284 KB , 시간: 128 ms 사용 알고리즘: 자료 구조, 트리 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static Map child1; static Map child2; public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedR..