백준 문제풀이

프로그래머스 lv2 _ 전화번호목록 JAVA문제풀이

yoneeee 2021. 7. 19. 15:00

오늘 푼 알고리즘 문제는 

프로그래머스 lv2. 전화번호목록

 

문제

해시맵 이용해서 풀이

 

import java.util.HashMap; 
import java.util.Map;


class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;
        
      	HashMap<String, Integer> map = new HashMap<>();
        
        //모든 전화번호 해싱
        for(int i=0; i < phone_book.length; i++){
            map.put(phone_book[i], i);
            //map(12,0);
            //map(345,1);
        }
        
        for(int i=0; i <phone_book.length; i++){
            for(int j=1; j <phone_book[i].length(); j++){
                 // substring은 (start, end-1)이기 때문에 0,0은 아무것도 출력 안됨
                 // 때문에 j는 1부터 시작해야함
                if(map.containsKey(phone_book[i].substring(0,j))){
                    //키 값을 포함하는게 하나라도 있다면 false 반환  
                    answer = false;
                    return answer;
                }
            }
        }
        
        return answer;
    }
}

해시맵으로 안 풀고 

문자열 비교해서 풀었더니 계속 

케이스 한개가 안 맞고

점수도 54점이였는데

해시맵으로 푸니까 완전 쉽게 풀 수 있었다