문제 설명
불우이웃을 돕기 위해 기부금을 모으려 합니다. 각 기부자는 기부 가능한 금액을 입력하면 됩니다. 기부자가 입력한 금액은 리스트에 저장하고, 최종적으로 기부받은 모든 금액의 총합을 계산하는 함수를 구현하세요. 또한, 기부자가 기부할 수 있는 최대 금액은 100000원으로 제한합니다.
입력
기부자 수 n
(1 <= n <= 1000)과 각 기부자의 기부 금액이 주어집니다.
출력
전체 기부금의 총합을 출력합니다.
예제 입력
5 10000 25000 50000 120000 30000
예제 출력
95000
문제 풀이 접근법
이 문제는 주어진 입력 값을 처리하여 총합을 계산하는 단순한 알고리즘을 요구합니다. 입력으로 주어진 기부 금액을 배열에 저장하고, 배열의 모든 요소를 합산하여 결과를 도출하는 방식으로 접근할 수 있습니다. 다음은 이 문제를 푸는 단계입니다.
1단계: 입력 받기
입력을 받기 위해, 사용자로부터 기부자 수(n)와 각 기부자의 기부 금액을 입력받겠습니다. 이 입력 값들은 배열에 저장됩니다. 기부 금액이 100000원보다 큰 경우는 무시하고, 이를 체크하는 로직이 필요합니다.
2단계: 배열에 기부 금액 저장
올바른 기부 금액만 배열에 추가하고, 총 기부 금액을 계산할 변수를 설정합니다.
3단계: 총 합계 계산 및 출력
배열에 저장된 기부 금액의 합계를 계산하고 결과를 출력합니다.
자바스크립트 코드 구현
이제 전체 로직을 자바스크립트 코드로 구현해 보겠습니다. 다음은 위에서 설명한 로직을 기반으로 한 코드입니다:
function calculateDonation() {
const n = parseInt(prompt("기부자의 수를 입력하세요: "));
let donations = [];
let totalDonation = 0;
for (let i = 0; i < n; i++) {
let donation = parseInt(prompt(`${i + 1}번째 기부 금액을 입력하세요: `));
// 기부 금액이 100000원 이하일 경우에만 배열에 추가
if (donation <= 100000) {
donations.push(donation);
totalDonation += donation;
} else {
console.log("기부 금액은 100000원 이하이어야 합니다.");
}
}
console.log(`총 기부금: ${totalDonation}원`);
}
calculateDonation();
코드 설명
코드를 분석해보면, calculateDonation
함수가 정의되며, 먼저 사용자가 기부자 수를 입력받습니다. 그 다음 for
문을 통해 각 기부 금액을 입력받고, 조건문으로 기부 금액이 100000원 이하인 경우에만 배열에 추가하며 총합을 계산합니다. 기부 금액이 초과할 경우 경고 메시지를 출력합니다. 마지막으로 총 기부금액을 출력합니다.
결론
이번 강좌에서는 자바스크립트를 사용하여 기부 데이터를 관리하는 간단한 프로그램을 구현해 보았습니다. 이 코드는 기부금 총합을 쉽게 계산할 수 있으며, 기부자 수와 기부 금액의 유효성을 체크하는 로직을 포함하고 있습니다. 이런 방식으로 간단한 문제를 해결해 나가는 경험을 통해 알고리즘 문제 해결에도 자신감을 가질 수 있습니다.
추가적인 연습 문제
문제 해결을 위한 연습을 위해 아래와 같은 문제를 추가로 해결해 보세요:
- 기부자의 기부 금액을 오름차순으로 정렬하여 출력하는 기능 추가하기
- 기부자의 평균 기부 금액을 계산하기
- 기부자 수가 10명 이상일 때, 10%의 추가 기부금을 자동으로 더하는 기능 구현하기
마무리
프로그래밍 연습은 단순히 문제를 푸는 것 이상으로 깊은 이해를 필요로 합니다. 문제를 해결해가는 과정에서 얻는 경험과 지식을 바탕으로, 더 나아가 자신만의 프로그램을 만들거나 더 복잡한 알고리즘 문제를 다룰 수 있는 자신감을 얻기 바랍니다.