본문 바로가기
코딩테스트/프로그래머스

[해시] Level 2 전화번호 목록 - JAVA

by 의정부핵꿀밤 2022. 2. 12.
728x90

https://yummy0102.tistory.com/193 

 

[해시] Level 2 전화번호 목록

문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입

yummy0102.tistory.com


오늘도 전에 푼 문제 다시 풀기~!

내일은 새로운 문제 풀어야지!!

 

 

알고리즘은 간단하다.

이 또한 해시를 사용하진 않고 문제의 꼼수를 약간 이용해줬다

전화번호 목록을 정렬하면 접두사가 같은 애들끼리 붙어 있을 수 밖에 없게 된다

그럼 정렬하고 앞과 뒤를 비교해주면서 앞의 문자열이 뒤의 시작과 같은 경우 접두사니까 answer는 false를 반환한다

 

Java에서도 마찬가지로 substring을 사용하였다.

substring(시작, 끝)을 넣어주고 .equals로 문자열 비교해주면 된당!

 

 

자바 코드)

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;
        Arrays.sort(phone_book);
        
        for(int i=0;i<phone_book.length-1;i++) {
            String now = phone_book[i];
            String next = phone_book[i+1];
            if(now.length()<=next.length()) {
                if(next.substring(0,now.length()).equals(now)) {
                    answer=false;
                    break;
                }
            }
        }
        return answer;
    }
}

 

 

 

그럼 내일은 신상 문제로 만납시당 빠잉!

728x90

댓글