728x90
[코딩 기초 트레이닝] 배열 만들기 2
구분
코딩 기초 트레이닝 > 배열 만들기 2
풀이 요약
0과 5로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 출력하는 문제
나의 풀이
function solution(l, r) {
let answer = [];
for(let i=l; i<=r; i++){
let arr=String(i)
if(![...arr].every((x)=>x==="5"|| x==="0"))
continue;
answer.push(i)
}
return answer.length===0 ? [-1] : answer;
}
먼저 정수 l부터 r까지의 수를 문자열로 변환하여 각 자리가 0또는 5인지 확인합니다.
조건을 만족하는 숫자를 answer 배열에 추가합니다.
answer 배열의 길이가 0이면 [-1]을 반환하고 그렇지 않으면 answer 배열을 반환합니다.
배운점
처음 문제를 풀때 for문의 i를 5씩 증가하게 (i+=5)로 하였으나 통과하지 못했습니다.
i를 5씩 증가하게 하면 안되는 이유는
- i+=5는 현재 숫자에서 5를 더하는 방식이라 모든 숫자를 건너뛰기 때문에 0과 5로만 이루어진 숫자를 놓칠 수 있습니다.
- 또한 l부터 r까지의 모든 숫자를 포함하지 못할 수 있습니다.
- 뿐만아니라 0과 5로 구성된 숫자들이 반드시 5의 배수라는 보장이 없습니다.
- (예를들어, 100은 0과 5로만 구성되지 않지만 105는 그렇습니다. 따라서, i+=5를 사용하면 0과 5로만 구성된 숫자를 제대로 찾지 못할 수 있습니다.)
every 메서드는 배열의 모든 요소가 조건을 충족하는지 확인하는 메서드 입니다.
이 문제를 풀면서 every 메서드의 사용법에 대해 배울 수 있었습니다.
728x90
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 내 p와 y의 개수 (2) | 2024.07.25 |
---|---|
[코딩 기초 트레이닝] 전국대회 선발고사 (3) | 2024.07.23 |
[코딩 기초 트레이닝] A 강조하기 (2) | 2024.07.18 |
[코딩 기초 트레이닝] 특정한 문자를 대문자로 바꾸기 (0) | 2024.07.18 |
[코딩 기초 트레이닝] 공백으로 구분하기 1 (0) | 2024.07.18 |