문제 개요
이번 글에서는 시속 킬로미터(km/h) 단위의 속도 값을 입력받아, 이를 초당 센티미터(cm/s) 단위로 변환한 결과를 반환하는 JavaScript 함수를 작성해 보겠습니다.
변환 원리 이해하기
km/h를 cm/s로 변환하려면 두 가지 기본 환산 계수를 알아야 합니다.
- 1킬로미터(km) = 100,000센티미터(cm)
- 1시간(hour) = 3,600초(sec)
즉, 시간당 이동 거리를 초당 이동 거리로 바꾸려면 거리 단위는 센티미터로 확대하고, 시간 단위는 초로 나누어 주면 됩니다. 변환 공식은 다음과 같습니다.
cm/s = (km/h × 100,000) ÷ 3,600
예제 코드
다음은 위 공식을 적용한 JavaScript 코드입니다.
const kmph = 12;
const convertSpeed = (kmph) => {
const secsInHour = 3600; // 1시간은 3,600초
const centimetersInKilometers = 100000; // 1km는 100,000cm
const speed = Math.floor((kmph * centimetersInKilometers) / secsInHour);
return `cm/s로 변환한 결과: ${speed}`;
};
console.log(convertSpeed(kmph));
실행 결과
cm/s로 변환한 결과: 333
코드 설명
입력값 12km/h를 변환하는 과정을 살펴보면 다음과 같습니다.
- 12 × 100,000 = 1,200,000 → 12km를 센티미터로 환산한 값입니다.
- 1,200,000 ÷ 3,600 ≈ 333.33 → 1초당 이동 거리(소수점 포함)입니다.
Math.floor()를 사용해 소수점 아래를 버리고 정수 333을 반환합니다.
만약 반올림된 값이 필요하다면 Math.round(), 올림 값이 필요하다면 Math.ceil()로 대체하여 사용할 수 있습니다. 또한 정확한 소수 값이 필요하다면 Math.floor() 없이 그대로 반환하거나 toFixed()로 자릿수를 지정하는 것도 좋은 방법입니다.