oris9
[코딩테스트] 프로그래머스 배열 만들기 2 본문
코딩테스트 연습 > 코딩 기초 트레이닝 > 배열 만들기 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` 키워드를 처음 보게 됐다.
공부하기 !
'알고리즘, 자료구조' 카테고리의 다른 글
[알고리즘] 복잡도 (시간복잡도, 공간복잡도) 알아보기 (0) | 2024.04.09 |
---|---|
[알고리즘/자료구조]알고리즘과 수도코드 (0) | 2024.04.07 |