![[Algorithms] Create an array2](https://cdn.hashnode.com/res/hashnode/image/upload/v1687096710046/8071f0ae-0c07-4e25-8c16-6c8102c28dbf.jpeg)
0단계 : 배열 만들기 2
정수
l과r이 주어졌을 때,l이상r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.
Example
| l | r | result |
| 5 | 555 | [5, 50, 55, 500, 505, 550, 555] |
| 10 | 20 | [-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/
![[Typescript + React] props값 전달 시, 타입지정](https://cdn.hashnode.com/res/hashnode/image/upload/v1693879886512/665150f0-12ad-47ab-8bad-d5ea482c0be5.jpeg)



