다음 Java 프로그램이 금액을 큰 화폐 단위부터 분해할 때 출력되는 한 줄을 쓰시오. 각 단위는 `단위:개수` 형식으로 출력된다.
public class Main {
static int[] divide(int amount, int unit) {
return new int[] { amount / unit, amount % unit };
}
public static void main(String[] args) {
int amount = 7860;
int[] units = {5000, 1000, 500, 100, 50, 10};
for (int unit : units) {
int[] result = divide(amount, unit);
if (result[0] > 0) {
System.out.print(unit + ":" + result[0] + " ");
}
amount = result[1];
}
}
}모범답안
5000:1 1000:2 500:1 100:3 50:1 10:1
풀이와 판단 근거
7860을 5000으로 나누면 1개와 잔액 2860이다. 이후 1000원 2개와 잔액 860, 500원 1개와 잔액 360, 100원 3개와 잔액 60, 50원 1개와 잔액 10, 10원 1개가 차례로 계산된다.
amount는 매 반복에서 나머지로 바뀌므로 이미 분해한 금액을 다시 세지 않는다.
자주 틀리는 지점
- 매 단위마다 원래 금액 7860을 다시 나눔
- result[0]과 result[1]의 몫·나머지 역할을 바꿈
- 출력 조건 때문에 개수가 0인 단위도 표시된다고 봄
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.