트리셋4 [백준] 21276번 - 계보 복원가 호석 [Java] https://www.acmicpc.net/problem/21276 1. 아이디어 이름을 통해 처리하는 상황이 많아서 Set, Map 등 다양한 자료구조를 활용했고 시조부터 위상 정렬을 수행해서 해결했다.2. 문제풀이 자식, 자손, 진입차수를 Map 자료구조로 처리했다. 자식은 출력을 위해 TreeMap을 활용했고 value도 TreeSet으로 미리 정렬하도록 했다. 자식과 자손을 구부하는게 포인트인데 위상 정렬은 자손으로 수행하며 선행 노드의 제거로 후행 노드의 진입차수가 0이 된 순간이 부모와 자식 관계가 됨을 활용했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] arg.. 2025. 2. 3. [백준] 1822번 - 차집합 [Java] https://www.acmicpc.net/problem/1822 1. 아이디어 집합과 정렬을 동시에 수행할 수 있는 TreeSet을 활용했다.2. 문제풀이 집합 A를 TreeSet으로 선언 후 집합 A의 원소들을 A에 넣은 후 집합 B에 해당하는 원소들을 A에서 제거하면 차집합을 얻을 수 있는 점을 이용해서 구현했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Buffe.. 2025. 1. 9. [백준] 18870번 - 좌표 압축 [Java] https://www.acmicpc.net/problem/18870 1. 아이디어 수직선 위에 주어진 좌표가 전체 좌표 중 중복을 제외하고 몇 번째로 큰 좌표인지 구하는 문제로 좌표에 대한 정렬을 수행 후 Map을 활용하는 방식과 이분 탐색을 활용하는 방식 두가지로 구현할 수 있었다.2. 문제풀이 1. HashMap주어진 좌표를 List로 받은 후 TreeSet에 복사해서 중복 제거 + 정렬을 수행했다. 이후 TreeSet을 순회하며 HashMap에 좌표와 순서를 저장해주었고 List를 순회하며 HashMap에서 순서를 조회하는 방식으로 구현했다. 2. 이분 탐색주어진 좌표를 배열로 받은 후 HashSet에 넣어 중복 제거를 수행했다. 이후 HashSet과 같은 크기의 배열에 넣고 정렬을 수행한 후 .. 2025. 1. 7. [백준] 16165번 - 걸그룹 마스터 준석이 [Java] https://www.acmicpc.net/problem/16165 1. 아이디어 HashMap과 TreeSet을 활용해서 조건에 맞게 자료 구조를 처리했다.2. 문제풀이 두 개의 HashMap을 활용했는데 하나는 key에 걸그룹 이름, value에 걸그룹 멤버를 저장했고, 하나는 key에 걸그룹 멤버, value에 걸그룹 이름을 저장했다. 첫번째 HashMap은 퀴즈가 0번일 경우 사용했고 걸그룹 멤버를 사전순으로 출력하기 좋게 TreeSet으로 처리했다.3. 코드 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { Buffere.. 2025. 1. 4. 이전 1 다음