1. 문제
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
출처: programmers.co.kr/learn/courses/30/lessons/68644?language=javascript
2. 코드
function solution(numbers) {
const temp =[]; // 배열 선언
// 배열내의 서로 두 수의 합
for ( let i=0; i < numbers.length-1; i++) {
for (let j = i+1; j < numbers.length; j++) {
// 두 수의 합을 temp배열에 추가
temp.push(numbers[i] + numbers[j])
}
}
const answer = [...new Set(temp)] // 배열 내의 중복값 삭제
return answer.sort((a, b) => a - b) // 배열을 오름차순 정렬
}
3. 배운 것
1) for 문을 중첩하여 사용
for 문을 중첩하여 사용하여 두 수의 합을 구하였다.
2) 배열 값 추가
.push() 를 사용하여 배열의 값을 추가
배열.push(추가할 값)
3) 배열 중복값 제거
2가지 방법을 배웠다.
(1) set 사용하기
Set 객체를 사용하면 중복 없는 데이터를 표현할 수 있다.
const answer = [...new Set(temp)]
(2) filter 와 indexOf 사용하기
- indexOf는 가장 처음으로 나타는 index를 return 하고
검사하고 있는 원소의 index와 조건에 따라 값을 (true or false) 리턴합니다. 해당 코드에서 조건은 item 의 index와 검사하고 있는 index값이 같을 경우에 true.
- filter는 조건에 맞는 true 값을 출력하여 배열로 만들어준다.
const answer = temp.filter((item, index) =>
temp.indexOf(item) === index)
4) 배열 오름차순 정리
.sort((a, b) => a - b)는 배열을 오름차순으로 나열해준다.
return answer.sort((a, b) => a - b)
'프로그래밍 > HTML, CSS, JavaScript' 카테고리의 다른 글
[HTML,CSS,JavaScript] jQuery 섹션 이동 버튼 만들기, 원하는 태그로 이동 하는법 (0) | 2021.04.24 |
---|---|
[JavaScript] 프로그래머스 level1 모의고사 풀이 (0) | 2021.03.30 |
HTML, CSS 수평배치와 줄넘김하는 방법, flex와 flax-wrap 사용법 (0) | 2021.03.06 |
스파르타 코딩클럽 웹 종합반 온라인 강의 회고 및 후기! (0) | 2020.10.16 |
부트스트랩 사용법, CSS 디자인 가져오기 (0) | 2020.09.22 |