저장을 습관화
프로그래머스 LV.0 배열의 원소만큼 추가하기 본문
프로그래머스 LV.0 배열의 원소만큼 추가하기
https://school.programmers.co.kr/learn/courses/30/lessons/181861
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 명
배열의 원소만큼 추가하기
2. 문제 설명
아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.
3. 제한 사항
- 1 ≤ arr의 길이 ≤ 100
- 1 ≤ arr의 원소 ≤ 100
4. 예시
arr | result |
[5, 1, 4] | [5, 5, 5, 5, 5, 1, 4, 4, 4, 4] |
[6, 6] | [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] |
[1] | [1] |
5. 기본 제공 코드
function solution(arr) {
var answer = [];
return answer;
}
6. 제출한 내 답
const solution = (arr) => {
return arr.reduce((a, b) => {
for (i = 1; i <= b; i++) {
a.push(b);
}
return a;
}, []);
};
6-2. VSC에 작성한 내용
const solution = (arr) => {
return arr.reduce((a, b) => {
for (i = 1; i <= b; i++) {
a.push(b);
}
return a;
}, []);
};
// 테스트
console.log(solution([5, 1, 4]));
console.log(solution([6, 6]));
console.log(solution([1]));
console.log(solution([]));
7. 특이사항
처음에 이렇게 작성해봤는데 틀렸다.
const solution = (arr) => {
return arr
.reduce((a, b) => {
return a.concat((b + "").repeat(b).split(""));
}, [])
.map((v) => {
return parseInt(v);
});
};
입출력 예시에서는 모두 통과했는데
제출 후 채점에서 틀렸다.
간단하게 설명하면
매개변수배열.reduce(각 요소 b를 문자열로 변경, b회 반복, 이 내용을 배열 형태로 변환하고 배열 a 끝에 삽입).map(배열 내 모든 요소를 숫자로 변경)
8. 다른 사람이 작성한 답
8-1. new Array
function solution(arr) {
return arr.reduce((list, num) => [...list, ...new Array(num).fill(num)], []);
}
'코딩 테스트 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 LV.0 할 일 목록 (0) | 2023.09.17 |
---|---|
프로그래머스 LV.0 주사위 게임 1 (0) | 2023.09.17 |
프로그래머스 LV.0 글자 이어 붙여 문자열 만들기 (0) | 2023.09.17 |
프로그래머스 LV.0 배열 비교하기 (0) | 2023.09.17 |
프로그래머스 LV.0 5명씩 (0) | 2023.09.17 |