문제 설명
방의 길이, 너비, 높이를 매개변수로 받아, 방의 벽면 전체를 덮는 데 필요한 시트(벽지)의 개수를 계산하는 JavaScript 함수를 작성해야 합니다.
시트 한 장의 규격은 다음과 같이 가정합니다.
- 너비: 0.52 단위
- 길이: 10 단위
또한 실제 시공 과정에서 발생할 수 있는 손실을 대비해, 계산된 필요량보다 15% 많은 양의 롤 수를 반환하도록 합니다.
풀이 접근
전체 계산 과정은 다음 세 단계로 정리할 수 있습니다.
- 벽면의 총 면적 계산: 사방 벽의 면적은
2 × (길이 + 너비) × 높이공식으로 구할 수 있습니다. - 시트 한 장의 면적 계산:
0.52 × 10 = 5.2제곱 단위입니다. - 필요한 시트 수 계산: 총 면적을 시트 한 장의 면적으로 나눈 뒤 15% 여유분을 곱하고,
Math.ceil()로 올림 처리하여 정수 개수를 구합니다.
예제 코드
다음은 위 로직을 구현한 코드입니다.
const findSheet = (length, width, height) => {
if(length === 0 || width === 0){
return 0;
}
const roomArea = 2 * (length + width) * height;
const rollArea = 0.52 * 10;
const required = Math.ceil(roomArea / rollArea * 1.15);
return required;
};
console.log(findSheet(4, 3.5, 3));
출력 결과
10
예를 들어 길이 4, 너비 3.5, 높이 3인 방의 경우 벽면의 총 면적은 45 제곱 단위입니다. 시트 한 장의 면적이 5.2이므로 약 8.65장이 필요하고, 여기에 15% 여유분을 더하면 약 9.95장이 됩니다. 이 값을 올림 처리하면 최종적으로 10장의 시트가 필요하다는 결과를 얻을 수 있습니다.