반응형
문제
계좌에 들어있는 돈 일부를 은행에서 출금하고자 합니다.
돈 담을 지갑이 최대한 가볍도록 큰 금액의 화폐 위주로 받습니다.
돈의 액수 money가 매개변수로 주어질 때, 오만 원권, 만 원권, 오천 원권, 천 원권, 오백원 동전, 백원 동전, 오십원 동전, 십원 동전, 일원 동전 각 몇 개로 변환되는지 금액이 큰 순서대로 배열에 담아 return 하도록 solution 메서드를 완성해주세요.
제한사항
money는 1 이상 1,000,000 이하인 자연수입니다.
입출력 예
money result
50237 [1, 0, 0, 0, 0, 2, 0, 3, 7]
15000 [0, 1, 1, 0, 0, 0, 0, 0, 0]
입출력 예 설명
입출력 예 #1 50,237원은 5만 원권 1매, 100원짜리 동전 2개, 10원짜리 동전 3개, 1원짜리 동전 7개로 만들 수 있습니다.
입출력 예 #2 15,000원은 만 원권 1매, 5천 원권 1매로 만들 수 있습니다.
문제 설명
50000원, 10000원, 5000원,,,,이런식으로 번갈아가며 진행되니까 번갈아가며 2와 5를 나눠주며 화폐 단위를 맞춘다
단 마지막에는 10원에서 바로 1원이 되니까 if문으로 따로 넣어줬다.
생각보다 오래걸리는거같다...ㅎㅏ..
성공 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import java.util.*;
public class Main{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
solution(sc.nextInt());
}
public static int[] solution(int money) {
int result[] = new int[9];
int fir = 50000;
int sw = 0;
for (int i = 0; i < result.length; i++) {
result[i] = money / fir;
money = money % fir;
if (sw == 0) {
sw = 1;
fir /= 5;
}
else if (sw == 1 && money < 10) {
fir /= 10;
}
else {
sw = 0;
fir /= 2;
}
}
System.out.print(Arrays.toString(result));
return result;
}
}
|
cs |
반응형