코테 준비-문제풀기

프로그래머스 - 해시/ 전화번호 목록 JAVA

FireStone 2020. 9. 12. 13:36

programmers.co.kr/learn/courses/30/lessons/42577?language=java

 

코딩테스트 연습 - 전화번호 목록

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

programmers.co.kr

LG 코테가 c++이 안돼서..급하게 java로 준비중이다..

이번 문제 역시 문제를 잘 생각해야한다.

처음에 생각없이 contains를 사용해서 풀었다가 테스트케이스 1,5를 통과하지 못했는데

그 이유는 접두어를 생각하지 않고 포함하는 것만 생각했기 때문이다.

12345 와 34가 있을때 이는 접두어가 아니므로 true를 리턴해야한다.

그래서 contains말고 indexOf를 사용했다.

 

indexOf는 포함된 유무를 알 수 있을 뿐만 아니라 해당 string의 시작위치를 반환해준다.

이런거보면 java가 string 다루기에는 더 편한것 같다..

개인적인 생각일 수 있지만 java가 더 좋긴하다,,

무튼 indexOf를 사용하면 금방 풀 수 있는 문제

 

class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;
        String str="";
        String compare="";
        int result;
        
        for(int i=0;i<phone_book.length;i++){
            str=phone_book[i];
            for(int j=0;j<phone_book.length;j++){
                if(i!=j){
                    compare=phone_book[j];
                   result= compare.indexOf(str);
                    if(result==0)
                        return false;
                    else
                        answer= true;
                }
                else
                    continue;
            }
        }
        return answer;
    }
}