https://school.programmers.co.kr/learn/courses/30/lessons/86051
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 원소 ≤ 9
- numbers의 모든 원소는 서로 다릅니다.
.sort()로 정렬하고 겹치지 않는 배열을 찾을라고 했었는데
코드도 길어지고 비효율적이였다.
그래서 다시검색
.includes : 메서드는 배열이 특정 요소를 포함하고 있는지 판별합니다.
function solution(numbers) {
var answer = 0;
for (let i = 0; i < 10; i++) {
if (!numbers.includes(i)) answer += i
}
return(answer);
}
if에서 { answer += i } 겉에 중괄호 생략 가능하다
includes를 사용하면 배열을 굳이 안해도되서 훨씬 줄이 짧아졌다.
다른 답
function solution(numbers) {
return 45 - numbers.reduce((cur, acc) => cur + acc, 0);
}
1부터 9까지의 합인 45에서 numbers 배열의 합을 빼서 결과를 return
배열의 총합을 구할때 reduce를 사용한다.
.reduce : 메서드는 배열의 각 요소에 대해 주어진리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.
- 누산기 (acc)
- 현재 값 (cur)
'코딩테스트' 카테고리의 다른 글
TIL - 프로그래머스 코딩테스트 : 평균 구하기 (0) | 2022.08.07 |
---|---|
TIL - 프로그래머스 코딩테스트 : 음양 더하기 (0) | 2022.08.07 |
TIL - 프로그래머스 코딩테스트 : 문자열을 정수로 바꾸기 (0) | 2022.08.07 |
TIL - 프로그래머스 연습문제 : 두 정수 사이의 합 (0) | 2022.08.07 |
TIL - 프로그래머스 연습문제 : 완수하지 못한 선수 (0) | 2022.08.07 |