[lv2] 전화번호 목록

걸음걸음·2023년 9월 4일
0

Test

목록 보기
29/29

문제 링크

  • phone_book : 전화번호(string)을 담은 배열
  • 어떤 번호가 다른 번호의 접두어인 경우 false
  • 그렇지 않은 경우 true
function solution(phone_book) {
    // phone_book 정렬, i와 i+1을 비교
    // 일치하면 false 그렇지 않으면 true 반환
    const sortBook = phone_book.sort();
    let result = true;
    sortBook.forEach((ele, idx)=>{
        // 바로 앞 숫자의 index가 0일 경우(접두어일경우) false return
        if(ele.indexOf(sortBook[idx-1]) === 0){
            result = false;
        }
    })
    return result;
}

다른 사람의 풀이

function solution(phoneBook) {
    return !phoneBook.sort().some((t,i)=> {
        if(i === phoneBook.length -1) return false;

        return phoneBook[i+1].startsWith(phoneBook[i]);        
    })
}

전체적인 풀이 방법은 비슷한 것 같은데, startsWith()라는 메서드를 사용, 더 깔끔하게 코드를 작성하셨다. 해당 메서드가 있는지 몰라서 더 헤맨 것 같다.

profile
꾸준히 나아가는 개발자입니다.

0개의 댓글