https://www.acmicpc.net/problem/5585
그리디 알고리즘으로 분류된 문제입니다.
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
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _5585
{
class Program
{
static void Main(string[] args)
{
int[] coinArray = { 500, 100, 50, 10, 5, 1 };
int coinCount = 0;
int remainMoney = 1000 - int.Parse(Console.ReadLine());
foreach(int coin in coinArray)
{
coinCount = coinCount + remainMoney / coin;
remainMoney = remainMoney % coin;
}
Console.WriteLine(coinCount);
}
}
}
|
동전의 종류가 정해져 있고 많지 않으므로 배열로 선언했습니다.
물건의 가격을 입력받아 거스름돈을 int형으로 저장했습니다.
foreach문으로 동전의 값이 큰 것부터 가져와 잔돈과 나눈 몫을 동전 갯수에 더해주고
남은 돈을 해당 동전 값의 나머지로 덮어줍니다.
백준 11047 - 동전 0 문제와 유사합니다.
백준#10818 - 최소, 최대 (0) | 2020.04.08 |
---|---|
백준#1110 - 더하기 사이클 (0) | 2020.04.08 |
백준#10951 - A+B - 4 (0) | 2020.04.08 |
백준#10952-A+B - 5 (0) | 2020.04.08 |
백준#1931-회의실배정 (0) | 2020.04.07 |