[JavaScript] Lv0 - 배열 만들기 2

Moon·2025년 1월 2일
0
post-thumbnail

배열 만들기

문제 설명

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

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


제한사항

  • 1 ≤ l ≤ r ≤ 1,000,000

입출력 예

lrresult
5555[5, 50, 55, 500, 505, 550, 555]
1020[-1]

입출력 예 설명

입출력 예 #1

  • 5 이상 555 이하의 0과 5로만 이루어진 정수는 작은 수부터 5, 50, 55, 500, 505, 550, 555가 있습니다. 따라서 [5, 50, 55, 500, 505, 550, 555]를 return 합니다.

입출력 예 #2

  • 10 이상 20 이하이면서 0과 5로만 이루어진 정수는 없습니다. 따라서 [-1]을 return 합니다.

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

    for (let i = l; i <= r; i++) {
        // 숫자를 문자열로 변환하여 모든 문자가 "0" 또는 "5"인지 확인
        const str = i.toString();
        if ([...str].every(char => char === '0' || char === '5')) {
            result.push(i);
        }
    }

    // result 배열이 비어 있으면 [-1] 반환, 그렇지 않으면 result 반환
    return result.length === 0 ? [-1] : result;
}

console.log(solution(5,555))
console.log(solution(10,20))

코드 설명

  1. result 배열 초기화:
    • result 배열을 초기화하여 조건을 만족하는 정수를 저장할 준비를 합니다.
  2. 범위 순회:
    • for (let i = l; i <= r; i++)를 통해 l에서 r까지 모든 정수를 순회합니다.
  3. 숫자 검증:
    • 현재 숫자 i를 문자열로 변환: i.toString()
    • 문자열의 각 문자를 확인:
      • [...str].every(char => char === '0' || char === '5')는 문자열의 모든 문자가 '0' 또는 '5'인지 확인합니다.
      • 조건을 만족하면 result.push(i)result 배열에 추가합니다.
  4. 결과 반환:
    • 만약 result 배열이 비어 있으면 [-1]을 반환합니다.
    • 그렇지 않으면 result 배열을 반환합니다.

입출력 예 설명

예제 #1

l = 5, r = 555

// 범위 내 숫자 중 "0"과 "5"로만 이루어진 숫자:
[5, 50, 55, 500, 505, 550, 555]

// 결과:
[5, 50, 55, 500, 505, 550, 555]

예제 #2

l = 10, r = 20

// 범위 내 숫자 중 "0"과 "5"로만 이루어진 숫자 없음

// 결과:
[-1]
profile
MOON.DEVLOG

0개의 댓글