목록트리를 사용한 집합과 맵 (4)
기록방
👉 문제링크 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 🔸 문제 분석 🔸 int 범위의 값을 넣는 'I' 연산과 최대값 혹은 최소값을 빼는 'D'연산이 k번 수행된다. 최종 연산 후 결과를 출력한다. k의 최대값이 1,000,000 이므로 값을 저장할 자료구조를 힙 형태로 구현해야 한다. 힙정렬이 적용된, 우선순위 큐(Priority Queue) 혹은 TreeMap을 사용한다. 🔸 Priority Queue 🔸 import java.io.BufferedReader; import java.io.IOEx..
👉 문제링크 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 🔸 문제 분석 🔸 문자열을 입력받아 부분 문자열의 종류를 출력한다. 입력받은 문자열s를 1부터 s의 크기까지의 길이로 잘라 부분 문자열을 구한다. 문자열의 중복을 피해 저장하고, 개수를 출력한다. 🔸 코드 🔸 import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Stri..
👉 문제링크 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 🔸 문제 분석 🔸 n개의 문자열을 집합으로 저장한다. m개의 문자열을 입력받아 저장된 집합에 포함된 문자열이 몇 개인지 출력한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.StringTokenizer; pub..
👉 문제링크 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 🔸 문제 분석 🔸 두 집합을 입력받고 각각 차집합을 계산해서 원소 개수의 합을 출력한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.StringTokenizer; public class Main { public static void m..