저장을 습관화
프로그래머스 LV.0 배열 두 배 만들기 본문
프로그래머스 LV.0 배열 두 배 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/120809
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 명
배열 두 배 만들기
2. 문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
3. 제한 사항
-10,000 ≤ numbers의 원소 ≤ 10,000
1 ≤ numbers의 길이 ≤ 1,000
4. 예시
numbers | result |
[1, 2, 3, 4, 5] | [2, 4, 6, 8, 10] |
[1, 2, 100, -99, 1, 2, 3] | [2, 4, 200, -198, 2, 4, 6] |
5. 기본 제공 코드
function solution(numbers) {
var answer = [];
return answer;
}
6. 제출한 내 답
function solution(numbers) {
var answer = [];
for (let i = 0; i<numbers.length; i++) {
answer[i] = Number(numbers[i])*2;
}
return answer;
}
6-2. VSC에 작성한 내용
function solution(numbers) {
var answer = [];
for (let i = 0; i<numbers.length; i++) {
answer[i] = Number(numbers[i])*2;
}
return answer;
}
// 어떻게 할 것인가?
// 반복문을 이용하여 배열의 각 요소들을 불러와
// 2를 곱하고 다시 그 자리에 넣는다.
// 테스트
console.log(solution([1, 2, 3, 4, 5]));
console.log(solution([1, 2, 100, -99, 1, 2, 3]));
console.log(solution([-49, -23, -9, -30, -6, -6, -11, 48, -21, 15]));
console.log(solution([33, 50, -41, -16, -43, 31, -40, 6, -28, -3]));
7. 특이사항
대충 이렇게 하면 되지 않을까....? 했는데 다행히 잘됐다
다만 반복문 부분에서 조건문을 작성할때 조금 버벅였다
i<=numbers.length도 해보고 i=numbers.length도 해보고..
요소(배열의 길이)가 5개인 배열의 위치는 0부터 4까지이다.
변수 i가 배열의 길이와 같아진다면 반복문은 배열의 요소를 6개 가져오려 할 것이다.
이렇게 된다면 배열의 마지막 항목엔 undefined가 저장된다.
8. 다른 사람이 작성한 답
8-1. reduce
function solution(numbers) {
return numbers.reduce((a, b) => [...a, b * 2], []);
}
8-2. map
function solution(numbers) {
return numbers.map(i=>i*2);
}
8-3. map + 화살표 함수
const solution = (numbers) => numbers.map((number) => number * 2)
8-4. forEach
function solution(numbers) {
var answer = [];
numbers.forEach(number => answer.push(2*number))
return answer;
}
forEach() 메소느드는 배열의 요소를 반복하며 함수를 호출한다.
'코딩 테스트 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 LV.0 중앙값 구하기 (0) | 2023.06.08 |
---|---|
프로그래머스 LV.0 나머지 구하기 (0) | 2023.06.08 |
프로그래머스 LV.0 분수의 덧셈 (0) | 2023.05.28 |
코딩 테스트 LV.0 숫자 비교하기 (0) | 2023.05.28 |
코딩 테스트 LV.0 두 수의 합, 두 수의 차, 두 수의 곱, 두 수의 나눗셈 (0) | 2023.05.28 |