Notice
Recent Posts
- Today
- Total
반응형
빵 입니다.
[프로그래머스] 짝수의 합 본문
문제 설명
정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
제한 사항
- 0 < n ≤ 1000
입출력 예
n | result |
---|---|
10 | 30 |
4 | 6 |
나의 풀이
function solution(n) {
let answer = 0;
for (let i = 1; i <= n; i++) {
if (i % 2 === 0) {
answer += i
}
}
return answer;
}
// 너무... 머리를 안굴리고(?) 그냥 아는 문법만 써서, 문제 풀기에만 초점을 맞춘 것 같다 ㅜㅜ
다른 사람 풀이1
function solution(n) {
var half = Math.floor(n/2);
return half*(half+1);
}
// 수열 공식을 이용하신 분... 코드도 깔끔하고, 해답도 정확하다.
다른 사람 풀이2
function solution(n) {
var answer = 0;
for(let i=2 ; i<=n ; i+=2)
answer += i;
return answer;
}
// 2를 기준으로 증가하니까 반복 횟수를 줄일 수 있구나!
다른 사람 풀이3
function solution(n) {
// 배열채우기
// '0'.repaet(n) // Array(n) : (empty로 채워짐)
// 각각을 나누기
// '0'.repaet(n).split('') // Array(100).fill() : (undefined로 채워짐)
// 숫자로 채우기
// Array(n).fill().map((_, index) => index) : 보통 value를 넣지만 사용하지않기에 _로 대체
// 시작 숫자를 0이 아닌 1로 설정
// Array(n).fill().map((_, index) => index + 1)
// 배열에서 짝수만 뽑아내기(v => v % 2 === 0)
// Array(n).fill().map((_, index) => index + 1).filter(v => v % 2 === 0)
// 나온 값 모두 더하기
// Array(n).fill().map((_, index) => index + 1).filter(v => v % 2 === 0).reduce((a , c) => a + c)
// 타입에러 발생 방지를 위해 리듀서의 초기값을 설정
// Array(n).fill().map((_, index) => index + 1).filter(v => v % 2 === 0).reduce((a , c) => a + c, 0)
return Array(n)
.fill()
.map((_, index) => index + 1)
.filter(v => v % 2 === 0)
.reduce((a, c) => a + c, 0);
}
// 이 분은 풀이까지 적어주셨다.
// 대체 어떻게 이런 생각을 가지고 계신거죠...👍🏻
반응형
'알고리즘과 자료구조 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 양꼬치 (1) | 2023.05.10 |
---|---|
[프로그래머스] 배열의 평균값 (0) | 2023.05.10 |
[프로그래머스] 각도기 (0) | 2023.05.10 |
[프로그래머스] 몫 구하기 (0) | 2023.05.10 |
역시... 공부를 해야 해. 알고리즘을. (0) | 2023.05.09 |
Comments