Google 태그 관리자 아이콘

알고리즘 풀이

.programmers(전화번호 목록)

silvergoni 2022. 4. 7. 15:00
반응형

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 구조로 풀어보고 싶어서 구현체를 만들고 위와 같이 풀었다.

알고리즘 정리노트: .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