난이도 : D2
문제번호 : 1970
※ 저의 풀이가 무조건적인 정답은 아닙니다.
다른 코드가 좀더 효율적이고 좋을 수 있습니다.
다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.
문제 주소 및 출처입니다.
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
우리나라 화폐 ‘원’은 금액이 높은 돈을 우선적으로 계산할 때 돈의 개수가 가장 최소가 된다. |
제약사항
1. N은 10이상 1,000,000이하의 정수이다. (10 ≤ N ≤ 1,000,000) 2. N의 마지막 자릿수는 항상 0이다. (ex : 32850) |
입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다. 각 테스트 케이스에는 N이 주어진다. |
출력
각 줄은 '#t'로 시작하고, 다음줄에 각 돈의 종류마다 필요한 개수를 빈칸을 사이에 두고 출력한다. (t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.) |
예시
입력 | 출력 |
2 32850 160 |
#1 0 3 0 2 1 3 1 0 #2 0 0 0 0 0 1 1 1 |
2. 문제풀이
간단하게 생각하여 풀었습니다. 제일 큰액수의 돈부터 나눈 몫을 출력하고 나머지 연산을 통해 점점 작은단위의 돈을 구했습니다. |
3. 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <iostream>
using namespace std;
int main(){
//반복길이와 돈, 한국돈을 입력
int length, money, Kmoney[8]{50000, 10000, 5000, 1000, 500, 100, 50, 10};
cin >> length;
//길이만큼 반복
for(int l = 1; l<=length; l++){
cin >> money;
cout << "#"<<l<<endl;
//입력받은 돈을 제일 앞의수부터 나누어준다.
for(int i=0; i<8; i++){
cout << (money / Kmoney[i]) << " ";
//나머지 연산을 통해 돈의 액수를 줄인다.
money %= Kmoney[i];
}
cout << endl;
}
return 0;
}
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
두 개의 숫자열 python,C++(SW Expert Academy) (0) | 2020.02.11 |
---|---|
숫자 배열 회전 C++(SW Expert Academy) (0) | 2020.02.10 |
스도쿠 검증 C++, Python(SW Expert Academy) (0) | 2020.02.08 |
시각 덧셈 C++(SW Expert Academy) (0) | 2020.02.07 |
어디에 단어가 들아갈 수 있을까 C++(SW Expert Academy) (0) | 2020.02.06 |
댓글