최신 글
-
[Java] BOJ 1167번 트리의 지름
1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 풀이 우선 임의의 점(1번 정점)에서 가장 긴 거리를 갖고 있는 정점을 구하고 해당 정점에서 다시 긴 거리를 구하면 그 거리가 최대 거리가 되므로 정답을 구할 수 있습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import ..
2021.10.21
-
[Java] BOJ 1644번 소수의 연속합
1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 풀이 에라토스테네스의 체와 투포인터를 활용하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class Main { public static int N, answer; public static boolean[] isPrime; public static List primeArr; public static void main(String[] arg..
2021.10.20
-
[Java] BOJ 1918번 후위 표기식
1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net 풀이 우선 연산자별 우선순위를 정하고 스택을 사용하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.Stack; public class Main { public static Map opPriority,..
2021.10.19
-
[Java] BOJ 17406번 배열 돌리기 4
17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 풀이 문제에서 주어진 조건과 순열을 사용하여 해결했습니다. 자세한 내용은 코드의 주석을 확인해주세요. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static class Info { int r, c, ..
2021.10.15
인기 글
-
[Java] BOJ 1038번 감소하는 수
1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net 풀이 재귀함수를 이용해서 해결했습니다. 자세한 사항은 코드의 주석을 참고해주세요! 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Main { public st..
2021.07.07
-
[Java] 문자열을 한 글자씩 자르고 다시 합치기
String의 split()과 join()을 사용합니다. input_s = "gfedcba"; // 한 글자씩 자른다 String[] arr = input_s.split(""); /* arr = {"g", "f", "e", "d", "c", "b", "a"} */ // 사전순으로 정렬한다. Arrays.sort(arr); /* arr = {"a", "b", "c", "d", "e", "f", "g"} */ // 다시 문자열로 합친다. String str = String.join("", arr); /* str = "abcdefg" */
2021.03.30
-
[Java] BOJ 2665번 미로만들기
2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1 ≤ n ≤ 50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net 풀이 우선순위 큐와 BFS를 활용하여 해결했습니다. 자세한 내용은 코드의 주석을 참고해주세요. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; public class Main { public static class Info implements Comparable { int y, x, ..
2021.10.14
-
[Java] BOJ 4485번 녹색 옷 입은 애가 젤다지?
4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 풀이 BFS에 우선순위 큐를 적용하여 낮은 가중치를 우선적으로 처리하게해서 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { public static clas..
2021.09.02