Lv 2. 전화번호 목록

2024. 6. 19. 08:12·Algorithm & Data Structures/Programers

 

처음에는 비교할 문장이 2개 이니까 2중루프를 통해 구현하였고 바로 시간초과오류가 발생하였다.
다음은 Map 을 사용한 해싱을 이용하여 풀이한 코드이다.
주어진 문제에서 비교군을 대상으로 하면 1000000*1000000 이지만
전화번호의 길이를 대상으로 하면 1000000*20 이더라.
이를 이용하였다. containsKey라는 메서드를 이용하여 풀이하였다.
containsKey는 해싱을 이용한 함수로 시간복잡도가 O에 달하는 효율적인 탐색 메서드이다.
중복된 전화번호가 없기에 사용할 수 있었다.

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        HashMap<String,Integer> map = new HashMap<>();
        for(int i = 0 ; i < phone_book.length ; i++)
            map.put(phone_book[i],i);    
        for(int i = 0 ; i < phone_book.length ; i++){
            for(int j = 0 ; j < phone_book[i].length() ; j++){
                if(map.containsKey(phone_book[i].substring(0,j)))
                    return false;
            }
        }
        return true;
    }
}

'Algorithm & Data Structures > Programers' 카테고리의 다른 글

Lv 2. pK진수에서 소수 개수 구하기  (1) 2024.06.22
Lv 2. 타겟 넘버  (0) 2024.06.20
Lv 2. [1차] 뉴스 클러스터링  (0) 2024.06.18
Lv 2. 피로도  (0) 2024.06.17
Lv 2. 프로세스  (0) 2024.06.14
'Algorithm & Data Structures/Programers' 카테고리의 다른 글
  • Lv 2. pK진수에서 소수 개수 구하기
  • Lv 2. 타겟 넘버
  • Lv 2. [1차] 뉴스 클러스터링
  • Lv 2. 피로도
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (347) N
      • Algorithm & Data Structures (265) N
        • BOJ (123) N
        • SWEA (1)
        • Programers (137)
        • Data Structures (3)
      • DB (29)
        • SQL (23)
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    스택
    다익스트라
    이분탐색
    Union-Find
    DynamicProgramming
    programmers
    위상정렬
    algorithm
    Dijkstra
    다이나믹 프로그래밍
    유니온파인드
    골드
    PriorityQueue
    Stack
    백트래킹
    binarySearch
    동적계획법
    자바
    BFS
    Java
    SQL
    dfs
    baekjoon
    경로압축
    알고리즘
    백준
    dp
    구현
    투포인터
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
Lv 2. 전화번호 목록
상단으로

티스토리툴바