oris9

[코딩테스트] 프로그래머스 배열 만들기 2 본문

알고리즘, 자료구조

[코딩테스트] 프로그래머스 배열 만들기 2

oris9 2024. 3. 14. 12:30

     

    코딩테스트 연습 > 코딩 기초 트레이닝 > 배열 만들기 2
    https://school.programmers.co.kr/learn/courses/30/lessons/181921

     

     

    정규표현식, 또는 이진수 개념을 이용해 풀 수 있는 문제였다.

    function solution(l, r, arr = []) {
      for (let i = l; i <= r; i++) {
        if (i.toString().replaceAll(/[05]/g, "") === "") arr.push(i);
      }
      return arr.length ? arr : [-1];
    }
    
    console.log(solution(5, 555)); // [5, 50, 55, 500, 505, 550, 555]
    console.log(solution(10, 20)); // [-1]

     

    2024.03.11 - [분류 전체보기] - [Javascript] 정규표현식(RegExp, regular expression) 정리하기

     

    // 숫자 5로 현혹시켰지만 사실 이건 이진수 문제임.
    function* gen50() {
        let i = 1;
    
        while(true) {
            yield Number(Number(i).toString(2)) * 5;
            i++;
        }
    }
    function solution(l, r) {
        const n = gen50();
        let a = 0;
        const arr = [];
    
        while(a < l) { a = n.next().value; }
        while(a <= r) { arr.push(a); a = n.next().value; }
    
        return arr.length ? arr : [-1];
    }

     

    다른 사람의 풀이를 보다가 function*yield 키워드를 처음 보게 됐다.

    공부하기 !

     

    2024.03.13 - [분류 전체보기] - [Javascript] 제너레이터 함수에 대해 알아보자