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

2024. 12. 9. 23:49·Coding Test

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

 

 

프로그래머스 코테 lv.0 에서 처음으로 막혔던 문제. (정답률 73%)

계속 전전긍긍하다가 갑자기 이진수 문제일 것 같다는 생각이 머리를 스쳤다.

하지만 이진수 아이디어를 가지고도 문제풀이에는 진전이 없었고

테스트는 통과했지만 아주 허접한 코드가 나오고야 말았다.

 

내 코드

function solution(l, r) {
    let arr = []
    for(let i=0; i<10000; i++) {
        let k = i.toString(2)*5
        if (l<=k && r>=k) {
            arr.push(k)
        }
    }
    if(arr.length===0) {
        arr.push(-1)
    }
    return arr
}

 

i를 10000까지 제한해 두었기 때문에

아마 테스트가 더 많았다면 절대 통과하지 못했을 코드(...)

 

다른 사람의 풀이를 보면

yield, every, 정규식 등의 다양한 풀이가 있었는데

 

이중 yield를 사용해서 내가 작성한 코드를 수정해 보았다.

function* zeroFive() {
    let i = 0;
    while(true) {
        yield Number(i.toString(2))*5
        i++;   
    }

}

function solution(l, r) {
    let arr = [];
    let a = 0
    let k = zeroFive();
    
    while(a<r) {
        a = k.next().value
        if(a<=r && a>=l) {
            arr.push(a)
        }
        
    }
        
    if(arr.length===0) {
        arr.push(-1)
    }
    return arr
}

 

배운 내용

제너레이터 함수는 function에 *을 붙여 선언한다.

yield는 제너레이터 함수에서만 사용할 수 있다.

제너레이터 객체를 만들고 .next() 메소드를 호출하여 반환된 값을 차례로 얻을 수 있다.

'Coding Test' 카테고리의 다른 글

[JS] 프로그래머스 / 덧칠하기  (0) 2024.12.21
[JS] 프로그래머스 / <PCCP 기출문제> / 1번 - 동영상 재생기  (1) 2024.12.16
[JS] 프로그래머스 / 푸드 파이트 대회  (1) 2024.12.14
[JS] 프로그래머스 / 크기가 작은 부분 문자열  (0) 2024.12.13
[JS] 프로그래머스 / 주사위 게임 3  (1) 2024.12.10
'Coding Test' 카테고리의 다른 글
  • [JS] 프로그래머스 / <PCCP 기출문제> / 1번 - 동영상 재생기
  • [JS] 프로그래머스 / 푸드 파이트 대회
  • [JS] 프로그래머스 / 크기가 작은 부분 문자열
  • [JS] 프로그래머스 / 주사위 게임 3
freesqqq
freesqqq
Fear only God, Hate only sins
  • freesqqq
    999
    freesqqq
    • Life Log (39)
      • Coding Test (12)
      • JavaScript (6)
      • TypeScript (2)
      • React (4)
      • Vue (0)
      • Next.js (1)
      • Html & css (0)
      • Git & Github (0)
      • Noising Log (1)
      • Reading Log (8)
      • Projects 🚀 (5)
        • Goodiary (AI 일기 사이트) (0)
        • Readiping (독서 커뮤니티) (1)
        • Couchilla (음반 거래 플랫폼) (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    js
    자기계발
    미루는습관
    크기가 작은 부분 문자열
    javascript
    코테
    supabase
    reduxtoolkit
    프머스
    코딩테스트
    죽음에이르는병
    수파베이스
    힘든일을먼저하라
    자바스크립트상속
    유신론적실존주의
    그릿
    대충만든자판
    Lv.1
    자바스크립트
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
freesqqq
[JS] 프로그래머스 / 배열 만들기 2
상단으로

티스토리툴바