문제
https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=javascript
자바스크립트
phone_book의 길이가 1 이상 1,000,000 이하인 점을 감안해 최대한 빠르게 서칭하기 위해 먼저 sorting을 진행했다.
정렬 방법은 아래와 같다.
// 입출력 예제
const phone_book = ["12", "88", "123", "567", "1235"]
// 리스트를 문자 순으로 정렬한 경우
phone_book.sort() // ["12", "123", "1235", "567", "88"]
// 리스트를 숫자 순으로 정렬한 경우
phone_book.sort((a, b) => Number(a) - Number(b)); // ["12", "88", "123", "567", "1235"]
예제가 문자열로 주어져 있어 보통은 숫자 순으로 정렬하는 방법을 사용하지만 이번에는 접두어를 기준으로 판별하기 때문에 일반적인 sort를 사용했다.
먼저 정렬을 진행했기 때문에 처음에는 자기 자신과 비교하여 true가 반환되기 때문에 바로 다음 번호만 순서대로 비교를 진행 하였다. 또한 startsWith 메소드를 사용해서 어떤 문자열로 시작하는지 쉽게 확인할 수 있었다.
startsWith를 처음 사용하는데 startWith가 아니라 startsWith 이다. (중간에 S주의)
function solution(phone_book) {
phone_book.sort()
for (let i = 0; i < phone_book.length - 1; i++) {
// 정렬된 상태에서 바로 다음 번호만 비교하면 됨
if (phone_book[i + 1].startsWith(phone_book[i])) {
return false;
}
}
return true;
}
'PS (Problem Solving) > Programmers' 카테고리의 다른 글
[프로그래머스] 베스트앨범 - 자바스크립트 (1) | 2024.11.09 |
---|---|
[프로그래머스] 오픈 채팅방 - 자바스크립트, 파이썬 (0) | 2024.11.08 |
[프로그래머스] 기능개발 - 자바스크립트 (0) | 2024.10.26 |
[프로그래머스] 카드 뭉치 - 자바스크립트 (0) | 2024.10.21 |
[프로그래머스] 크기가 작은 부분문자열 (0) | 2024.10.18 |