Skip to main content

Command Palette

Search for a command to run...

[Algorithms] Create an array2

Javascript : every(), toString()

Updated
•2 min read•View as Markdown
[Algorithms] Create an array2

0단계 : 배열 만들기 2

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

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

Example

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

Solutions

  • from programmers.co.kr
// Solution1
function solution(l, r) {
    const result = Array.from({length:r-l+1}, (_,i)=>i+l).filter(n=>!/[^05]/.test(n));
    return result.length ? result : [-1];
}
// Solution2
function solution(l, r) {
    const arr = Array.from(String(r)).fill(false)
    arr[arr.length-1] = true
    const result = []
    while (!arr.every(v => v === false)) {
        const num = Number(arr.map(v => v ? 5 : 0).join(''))
        if (num >= l && num <= r) result.push(num)
        for (let i = arr.length-1; i >= 0; i -= 1) {
            arr[i] = !arr[i]
            if (arr[i]) break
        }
    }
    return result.length === 0 ? [-1] : result
}
// Solution3
function solution(l, r) {
    var answer = [];

    for(let i = l ; i <= r; i += 1) {
        if(i.toString().split("").every(e => e == "5" || e == "0"))
        answer.push(i);
    }
    return answer.length == 0 ? [-1] : answer;
}

Today I learned

Array.prototype.every() - 조건 검사

  • every() 메서드는 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트합니다. Boolean 값을 반환합니다.
const isBelowThreshold = (currentValue) => currentValue < 40;

const array1 = [1, 30, 39, 29, 10, 13];

console.log(array1.every(isBelowThreshold));
// Expected output: true

Object.prototype.toString()

  • Number -> String
// `toString()` 메서드를 사용해 숫자형에서 문자열로 변환하기
var num = 24;
var str = num.toString();

console.log(num); // 24
console.log(str); // "24"
// toString() 메서드를 사용해 10진수를 2진수로 변환하기 
var str = (5).toString(2); //숫자 5를 2진수로 변환 

console.log(str); // "101"

cf. programmers.co.kr https://school.programmers.co.kr/learn/courses/30/lessons/181921

cf. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/every

cf. https://www.freecodecamp.org/korean/news/javascript-number-to-string/

More from this blog

Next.js의 Routing

라우팅은 네트워크 용어로서 네트워크상의 주소로 이동하여 해당 주소에 연결되어있는 데이터를 사용하는 일련의 과정을 의미 라우터는 라우팅을 수행할 수 있는 장치 pages (혹은 src/pages) 폴더 아래에 파일을 추가하는 방식으로 각 컴포넌트에 URL을 부여 install - 리액트에서는 라우터를 제공하지 않기 때문에 react-router-dom이라는 패키지를 설치 router 객체 확인 가능 동적 라우팅(Dynamic Rout...

Aug 30, 20232 min read
Next.js의 Routing

What I've learned on my tech journey

26 posts

Frontend Developer👩‍💻