코딩테스트 문제 풀기 Lv. 0 홀짝에 따라 다른 값 반환하기

휘루·2024년 6월 7일
0

코딩테스트

목록 보기
6/13

문제 설명

양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.

제한사항

1 ≤ n ≤ 100

입출력 예

n result
7 16
10 220

입출력 예 설명

입출력 예 #1

예제 1번의 n은 7로 홀수입니다. 7 이하의 모든 양의 홀수는 1, 3, 5, 7이고 이들의 합인 1 + 3 + 5 + 7 = 16을 return 합니다.

입출력 예 #2

예제 2번의 n은 10으로 짝수입니다. 10 이하의 모든 양의 짝수는 2, 4, 6, 8, 10이고 이들의 제곱의 합인 22 + 42 + 62 + 82 + 102 = 4 + 16 + 36 + 64 + 100 = 220을 return 합니다.

풀이

function solution(n) {
    let answer = 0;
    
    if (n % 2 === 1) { // n의 나머지가 홀수이면
        for (let i = 1; i <= n; i+=2) { // i = 1, i의 길이만큼, i = i + 2;
            answer = answer + i; // 1 + 3 + 5 + 7 = 16
        }
    } else {
        for (let i = 2; i <= n; i+=2) { 
            answer = answer + i * i; // 4 + 16 + 36 + 64 + 100 = 220
        }
    }
    return answer;
}

풀이 해석

  • if를 사용해 n % 2 === 1 나머지가 1이면
  • for문을 사용해 i = 1, i가 <= n보다 작으면 i를 2씩 증가하도록 설정
  • answer(1) = answer(1) + i(2)여서 첫 숫자는 1, 그리고 3, 그리고 5, 그리고 7로 덧셈을 합니다. 그럼 첫번째 답은 16입니다.
  • answer(2)부터 시작합니다. 2의 2제곱은 4입니다.
  • answer = answer + (i * i) 입니다. 4 = 2 x 2여서 첫 숫자는 4입니다.
  • 2의 2제곱, 4의 2제곱, 6의 2제곱, 8의 2제곱, 10의 2제곱을 합산합니다.
    (4 + 16 + 36 + 64 + 100 = 220)
  • 그래서 결과는 16, 220이 됩니다.
profile
반가워요

0개의 댓글