문제 상황
1부터 시작하는 월 인덱스(1~12)를 입력받아, 해당 월이 속한 분기를 반환하는 JavaScript 함수를 작성해야 합니다. 예를 들어 7월을 입력하면 세 번째 분기(Q3)에 해당하는 3을 반환해야 합니다.
분기의 기본 개념
1년은 네 개의 분기로 나뉩니다.
- 1분기(Q1): 1월 ~ 3월
- 2분기(Q2): 4월 ~ 6월
- 3분기(Q3): 7월 ~ 9월
- 4분기(Q4): 10월 ~ 12월
조건문을 활용한 풀이
다음은 if...else 조건문을 사용해 월에 해당하는 분기를 찾는 코드입니다.
const month = 7;
const findQuarter = (month = 1) => {
if (month <= 3) {
return 1;
} else if (month <= 6) {
return 2;
} else if (month <= 9) {
return 3;
} else if (month <= 12) {
return 4;
}
};
console.log(findQuarter(month));
출력 결과
위 코드를 실행하면 콘솔에 다음과 같이 출력됩니다. 7월은 세 번째 분기에 속하므로 3이 출력됩니다.
3
더 간결한 방법: Math.ceil 활용
조건문 없이 수학적 계산만으로도 분기를 구할 수 있습니다. 월 값을 3으로 나눈 뒤 올림 처리하면 곧바로 분기 번호가 나옵니다.
const findQuarter = (month = 1) => Math.ceil(month / 3);
console.log(findQuarter(7)); // 3
console.log(findQuarter(1)); // 1
console.log(findQuarter(12)); // 4
이 방식은 코드가 짧고 가독성이 좋으며, 불필요한 분기 처리 로직 없이 한 줄로 해결할 수 있다는 장점이 있습니다. 실무에서는 이처럼 규칙적인 범위 계산이 필요할 때 Math.ceil을 활용하면 깔끔하게 처리할 수 있습니다.