[프로그래머스] 배열 만들기2

0
post-thumbnail

❔ [문제]

정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.

  • 제한사항
    • 1 ≤ l ≤ r ≤ 1,000,000


❕ [내 풀이]

function solution(l, r) {
    var answer = [];
    for(let i = l; i <= r; i++) {
        let num = '';
        if(i.toString().includes('5')) {
            num = i.toString().replaceAll('0','');
            num = num.replaceAll('5','');
            if(num.length === 0) answer.push(i);
        } 
    }
    answer = answer.length == 0 ? [-1] : answer;
    return answer;
}

❕❕❕ [깔끔하다고 생각된 풀이]

function solution(l, r) {
    let result = [];

    for (let i = l; i <= r; i++) {
        const numStr = i.toString();
        if (!/[^05]/.test(numStr)) {
            result.push(i);
        }
    }
    
    return result = result.length == 0 ? [-1] : result;
}

0개의 댓글