반응형
https://programmers.co.kr/learn/courses/30/lessons/42577
1. 2022.04.01 시도
소요시간: - 분(기억안남)
import java.util.*;
class Box {
Box[] boxes = new Box[10];
boolean isPhone;
}
class Solution {
public boolean solution(String[] phone_book) {
Arrays.sort(phone_book);
Box wholeBox = new Box();
for (String each: phone_book) {
Box temp = wholeBox;
for (int i=0; i<each.length(); i++) {
int index = Integer.parseInt(each.charAt(i)+"");
Box next = temp.boxes[index];
if (next == null) {
temp.boxes[index] = new Box();
} else if (next.isPhone) {
return false;
}
temp = temp.boxes[index];
}
temp.isPhone = true;
}
return true;
}
}
풀이 접근 과정
먼저 정렬을 하고 노드를 이어가는 방식으로 진행했다.
현재 노드에 번호가 이미 있다면 끝난것으로 판단했다.
느낀점
- 다른 풀이 보니 이미 정렬해서 지금 번호가 다음 번호에 포함된 것만 체크해도 잘 풀리는 듯 하다.
- Trie 구조로 풀어보고 싶어서 구현체를 만들고 위와 같이 풀었다.
- Trie: https://rebro.kr/86
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.programmers(베스트앨범) (0) | 2022.04.07 |
---|---|
.programmers(위장) (0) | 2022.04.07 |
.programmers(완주하지 못한 선수) (0) | 2022.04.07 |
.leetcode(929. Unique Email Addresses) (0) | 2022.04.01 |
.leetcode(885. Spiral Matrix III) (0) | 2022.03.31 |