티스토리 뷰
반응형
https://www.acmicpc.net/problem/14725
난이도 : 골드 2
트라이를 이용하여 풀었습니다. 트라이는 문제에서 주어진 그림처럼 문자열 트리라고 생각할 수 있습니다.
전역 변수
StringBuilder sb = 트라이 구조를 그려서 저장할 변수
함수
void main
입력을 받고 트라이를 구현합니다. 19번째 줄에서는 n개의 입력을 받고 24번째 줄에서는 한 줄의 입력에서 k개의 입력을 트라이에 넣습니다.
노드는 트라이를 탐색할 때 이용하는 변수인데 28번째 줄에서 노드의 리스트에 삽입해야 할 String이 있는지 검사합니다. 없다면 -1, 있다면 그 변수가 위치한 list의 index를 가집니다.
index가 -1이라면 현재 노드의 list에 String 변수를 추가합니다. 그리고 노드는 추가한 변수의 위치로 이동합니다.(자식)
index가 -1이 아니라면 해당 변수의 위치로 노드를 이동시킵니다.(자식)
(print 호출)
void print
재귀 형식으로 현재 노드의 list를 이름 순으로 정렬하고 현재 노드의 name을 StringBuilder에 추가합니다. 그 후 list의 값에 차례대로 접근하여 dfs합니다.
class Trie
list는 현재 Trie에서 밑에 자식을 저장합니다. name은 현재 Trie의 이름을 저장합니다.
반응형
'문제풀이 > 백준 && 프로그래머스' 카테고리의 다른 글
[프로그래머스] 프렌즈4블록 (자바) (0) | 2021.02.11 |
---|---|
[백준 5052] 전화번호 목록 (자바) (0) | 2021.01.09 |
[백준 1937] 욕심쟁이 판다 (자바) (0) | 2021.01.04 |
[백준 3860] 할로윈 묘지 (자바) (0) | 2020.12.01 |
[백준 1865] 웜홀 (자바) (0) | 2020.11.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 네이버
- 프로그래머스
- 신입
- 스프링부트
- 레벨4
- 카카오
- 그래프탐색
- 실버
- 구현
- 게시판
- 시뮬레이션
- 브루트포스
- 골드
- 코딩테스트
- 플레
- 최소스패닝트리
- 레벨3
- 프로젝트
- 자바
- 자료구조
- 취준
- 레벨2
- 후기
- 트리
- 백준
- dfs
- 면접
- 스프링
- 그래프이론
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함