treeset 2

[코테/Java] Hash | 프로그래머스 Lv1. 두 개 뽑아서 더하기

투포인터 학습 흐름 만난 문제지만, 실제로는 TreeSet으로 풀었다. "중복 제거 + 정렬"을 동시에 해결하는 방법을 고민하다가 TreeSet을 처음 알게 됐다.1. 문제 분석 문제 요약정수 배열 numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를, 오름차순으로 정렬된 배열로 반환한다. 핵심 요구사항중복 제거 — 같은 합이 여러 조합으로 나와도 한 번만오름차순 정렬 — 최종 결과는 정렬된 상태2. 풀이 과정1차 의사코드1. numbers 오름차순 정렬2. 이중 for문을 돌면서 두 수의 합을 hashset에 넣는다.3. 다시 한번 sort해서 return 한다. 막혔던 포인트 ① - 원본 배열 정렬이 필요한가?처음엔 numbers 자체를 미리 정렬해야 한다고 ..

TreeSet 개념 정리

1. 개념TreeSet은 중복을 허용하지 않으면서 자동으로 정렬을 유지하는 자료구조다.내부적으로 이진 탐색 트리(Red-Black Tree) 기반으로 구현되어 있어서, 데이터를 추가하는 순간 정렬된 위치에 들어간다.TreeSet set = new TreeSet();set.add(5);set.add(1);set.add(3);set.add(1); // 중복 → 무시됨// 내부적으로 [1, 3, 5] 순서로 정렬되어 유지됨2. HashSet과의 비교 HashSetTreeSet중복 제거OO순서보장 안 됨자동 오름차순 정렬추가/삭제/조회 속도O(1)O(log n)내부 구조해시 테이블이진 탐색 트리 TreeSet이 HashSet보다 속도는 살짝 느리지만(O(log n) vs O(1)), 정렬까지 자동으로 해결해준..

Computer Science 2026.06.27
728x90