티스토리 뷰
https://www.acmicpc.net/problem/5052
5052번: 전화번호 목록
첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가
www.acmicpc.net
문자열을 저장하는 트라이 자료구조를 이용한 문제.
https://tose33.tistory.com/533
트라이 자료구조
https://yabmoons.tistory.com/379 [ 자료구조 트라이(TRIE) ] 개념과 구현방법 (C++) 이번 글에서는 자료구조 트라이(TRIE) 에 대해서 알아보자. 1. 트라이 (TRIE) ?? 먼저 '트라이'가 무엇인지에 대해서 부터 알아
tose33.tistory.com
트라이 자료구조에 문자를 Insert 하다가, bool finish 가 true를 만나면 이미 해당 문자열이 존재하는 것이기 때문에 해당 번호는 일관성이 없다고 할 수 있기 때문에 더 이상 탐색을 그만두고 일관성 없음을 표시하면 된다.
주의할점은 이런식으로 문자열을 insert 하면서 중복검색까지 할 경우, 문자열을 문자열 길이 기준 오름차순 정렬하고 트라이 자료구조에 넣어야 한다.
그렇지 않으면 만약 다음 두 번호를 입력한다고 하면 "11111", "1"
"11111"가 먼저 트라이 자료구조에 insert 된다.
그 후 "1"을 Insert하면 "1"은 크기가 1이기 때문에 기존 "11111"의 첫 노드까지만 방문하고 종료된다.
따라서 문자열의 끝을 뜻하는 finish=true 를 못만나고 종료되기 때문에 "11111", "1"은 일관성이 없음에도 불구하고 일관성 있음이 출력되버린다.
'PS' 카테고리의 다른 글
백준 1744. 수 묶기 (0) | 2022.11.29 |
---|---|
백준 10830. 행렬 제곱 (0) | 2022.11.28 |
백준 8394. 악수 (0) | 2022.11.26 |
백준 2493. 탑 (0) | 2022.11.26 |
백준 1874. 스택 수열 (0) | 2022.11.25 |
- Total
- Today
- Yesterday
- CSS
- permutation
- BFS
- Tree
- binary search
- C
- greedy
- priority queue
- dfs
- graph
- back tracking
- Kruskal
- 이분탐색
- 자료구조
- 조합
- Brute Force
- Spring
- Unity
- Implementation
- Dijkstra
- Python
- two pointer
- recursion
- DP
- MVC
- C++
- db
- 재귀
- Stack
- floyd warshall
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |