트라이(Trie)를 이용하여 문제를 해결하였다.
트라이(Trie) 자료구조에 대한 기본적인 이해가 선행되어야 한다.
전화번호에 일관성이 없는 경우는 트라이에서 문자열의 문자를 탐색하는 도중에, 마지막 문자가 아님에도 불구하고 isLastChar가 true인 노드가 존재하는 경우라고 볼 수 있다.
그래서 Trie 클래스 내에 checkConsist() 라는 메서드를 만들었다.
이 메서드는 특정 문자열을 탐색하는 도중에 isLastChar가 true 인 노드가 있으면 false를 반환한다.
문자열 중간에 있는 노드의 isLastChar가 true 라는 것은 전화번호가 일관성 없는 경우를 의미하기 때문이다.
checkConsist()가 false를 반환하면 NO를 출력하고, true를 반환하면 YES를 출력한다.
소스코드 :
'BOJ' 카테고리의 다른 글
[백준 2343번] 기타 레슨 (java) (0) | 2021.03.01 |
---|---|
[백준 6236번] 용돈 관리 (java) (0) | 2021.03.01 |
[백준 2056번] 작업 (java) (0) | 2021.02.26 |
[백준 2670번] 연속부분최대곱 (java) (0) | 2021.02.25 |
[백준 2240번] 자두나무 (java) (0) | 2021.02.25 |