티스토리 뷰
https://school.programmers.co.kr/learn/courses/30/lessons/68644
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
set
function solution(numbers) {
const set = new Set()
for(let i = 0; i < numbers.length; i ++) {
for(let j = 1; j < numbers.length - i; j++) {
set.add(numbers[i] + numbers[i + j])
}
}
return [...set].sort((a, b) => a - b)
}
- 중복값을 저장하지 않는 set 객체를 사용
- 이중 for문을 이용해 모든 경우의 수를 계산
- 전개구문을 활용해 set 객체를 배열로 만든 후 오름차순 정렬한 값을 반환
* 다른 사람의 풀이를 보니 다음과 같이 new Set을 전개구문과 함께 쓸 수도 있었다
function solution(numbers) {
const temp = []
for (let i = 0; i < numbers.length; i++) {
for (let j = i + 1; j < numbers.length; j++) { // --> 이 부분도 나와 달랐다
temp.push(numbers[i] + numbers[j])
}
}
const answer = [...new Set(temp)] // ---> 이런 식으로!
return answer.sort((a, b) => a - b)
}
includes()
function solution(numbers) {
const answer = []
for(let i = 0; i < numbers.length; i ++) {
for(let j = 1; j < numbers.length - i; j++) {
const val = numbers[i] + numbers[i + j]
if(answer.includes(val)) continue
answer.push(val)
}
}
return answer.sort((a, b) => a - b)
}
- 빈 배열 생성
- 모든 경우의 수를 더한 후 includes()를 이용해 배열에 해당 값이 있는지 확인
- 해당 값이 있으면 push하지 않음
- 해당 값이 없으면 push
- 오름차순한 값을 반환
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 1단계 - K번째수 (javascript) (0) | 2022.07.27 |
---|---|
[프로그래머스] 1단계 - 없는 숫자 더하기 (javascript) (0) | 2022.07.26 |
[프로그래머스] 1단계 - 서울에서 김서방 찾기 (javascript) (0) | 2022.07.18 |
[프로그래머스] 1단계 - 문자열 내 p와 y의 개수 (javascript) (0) | 2022.07.17 |
[프로그래머스] 1단계 - 평균 구하기 (javascript) (0) | 2022.07.13 |
댓글