문제 소개
사람의 나이를 년 단위로 입력받으면, 그에 해당하는 고양이 나이(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살부터 입력받은 사람 나이까지 한 해씩 순회하면서 누적 계산을 진행합니다.
- 반복 변수
i가 1이면 첫 해에 해당하므로, 고양이와 개 나이에 각각 15를 더합니다. i가 2이면 두 번째 해이므로, 두 동물 모두 9를 추가로 더합니다.- 3 이상인 경우에는 매년 고양이에게는 4, 개에게는 5를 더해 성장 속도의 차이를 반영합니다.
모든 반복이 끝나면 [사람 나이, 고양이 나이, 개 나이] 형태의 배열을 반환합니다. 위 예시에서 15년을 계산하면 고양이는 15 + 9 + (4 × 13) = 76살, 개는 15 + 9 + (5 × 13) = 89살이 되어 출력 결과와 일치합니다.