Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트로 사람 나이를 고양이 나이와 개 나이로 변환하는 방법

문제 소개

사람의 나이를 년 단위로 입력받으면, 그에 해당하는 고양이 나이(catYears)와 개 나이(dogYears)를 함께 반환하는 자바스크립트 함수를 작성하는 것이 이번 과제입니다.

나이 변환 규칙

동물의 나이는 사람 나이와 단순히 배수 관계가 아니며, 성장 속도가 초기에 훨씬 빠르다는 점을 반영해 다음과 같은 규칙으로 계산합니다.

  • 첫 번째 해: 고양이와 개 모두 15살로 계산합니다.
  • 두 번째 해: 각각 9살씩 추가되어, 2살 시점에는 둘 다 24살이 됩니다.
  • 세 번째 해부터: 매년 고양이는 4살씩, 개는 5살씩 추가됩니다.

입력 및 출력 예시

입력

const humanYears = 15;

출력

[ 15, 76, 89 ]

사람 나이 15살은 고양이 나이로 76살, 개 나이로 89살에 해당합니다.

구현 코드

const humanYears = 15;
const humanYearsCatYearsDogYears = (humanYears) => {
    let catYears = 0;
    let dogYears = 0;
    for (let i = 1; i <= humanYears; i++) {
        if (i === 1) {
            catYears += 15;
            dogYears += 15;
        } else if (i === 2) {
            catYears += 9;
            dogYears += 9;
        } else {
            catYears += 4;
            dogYears += 5;
        }
    }
    return [humanYears, catYears, dogYears];
};
console.log(humanYearsCatYearsDogYears(humanYears));

실행 결과

[ 15, 76, 89 ]

코드 동작 원리

함수 내부에서는 for 반복문을 사용해 1살부터 입력받은 사람 나이까지 한 해씩 순회하면서 누적 계산을 진행합니다.

  1. 반복 변수 i1이면 첫 해에 해당하므로, 고양이와 개 나이에 각각 15를 더합니다.
  2. i2이면 두 번째 해이므로, 두 동물 모두 9를 추가로 더합니다.
  3. 3 이상인 경우에는 매년 고양이에게는 4, 개에게는 5를 더해 성장 속도의 차이를 반영합니다.

모든 반복이 끝나면 [사람 나이, 고양이 나이, 개 나이] 형태의 배열을 반환합니다. 위 예시에서 15년을 계산하면 고양이는 15 + 9 + (4 × 13) = 76살, 개는 15 + 9 + (5 × 13) = 89살이 되어 출력 결과와 일치합니다.