Algorithm

๋ฐฑ์ค€ 5585 | ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๊ฑฐ์Šค๋ฆ„ ๋ˆ

osean 2020. 10. 18. 05:06

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ตœ์ ํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐ์— ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ํšจ์œจ์„ ์˜ฌ๋ฆฐ๋‹ค๊ณ  ์•Œ๋ ค์ ธ์žˆ๋‹ค.
๋˜ํ•œ, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์—ฌ๋Ÿฌ ๊ฒฝ์šฐ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•  ๋•Œ ๊ทธ ์ˆœ๊ฐ„์˜ ์ตœ์ ์˜ ์„ ํƒ์„ ์ปดํ“จํ„ฐ์—๊ฒŒ ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š”๋ฐ, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ตœ์ ํ•ด๋ฅผ ๋ณด์žฅ ํ•ด์ฃผ์ง€ ์•Š์ง€๋งŒ ๊ฒฐ๊ณผ๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ต‰์žฅํžˆ ๋‹จ์ถ•๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

์œ„์˜ ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ๊ฐ€์žฅ ์ตœ์ ์˜ ํ•ด๋Š” 7 → 100 → 107์˜ ๊ฒฝ๋กœ๊ฐ€ ๊ฐ€์žฅ ์ตœ์ ์˜ ํ•ด๋กœ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ค.


ํ•˜์ง€๋งŒ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ 7 ๋ณด๋‹ค ํฐ 13์„, 5 ๋ณด๋‹ค ํฐ 11์„ ์„ ํƒํ•œ๋‹ค. ์ฆ‰, ํ˜„์žฌ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ์ตœ์„ ์˜ ์„ ํƒ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ ํ•ด๋ฅผ ๋ณด์žฅ ํ•ด์ฃผ์ง€ ์•Š๋Š” ๋‹ค๋Š” ๋œป์ด๋‹ค.

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋Š” ๊ฑฐ์Šฌ๋Ÿฌ ์ค˜์•ผ ํ•  ์ตœ์†Œํ•œ์˜ ๋™์ „ ๊ฐœ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ํŒŒ์•…ํ•  ๋•Œ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ๋œ๋‹ค.

๊ฑฐ์Šค๋ฆ„ ๋ˆ

ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž˜ ๋ณด์—ฌ์ฃผ๋Š” ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๋น„๊ต์  ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ํ•˜๋‚˜์˜ ํšก๋‹จ์— 500, 100, 50, 10, 5, 1 ์˜ ๊ฐ’์„ ๊ฐ€์ง„ ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ตœ์„ ์˜ ์„ ํƒ์„ ํ†ตํ•œ ์ตœ์ ํ•ด(ํ•ด๋‹น ๋ฌธ์ œ์—์„œ๋Š” ์ตœ์†Œํ•œ์˜ ๋™์ „ ๊ฐœ์ˆ˜)๋ฅผ ๊ตฌํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ์•„๋ž˜์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋  ๊ฒƒ์ด๋‹ค.

์œ„์˜ ๊ทธ๋ฆผ์„ ํ†ตํ•ด ๋Œ€๋žต์ ์ธ ์ดํ•ด๊ฐ€ ๋˜์—ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ œ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด ๋ณด์ž!

  • ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌ์กฐ๋Œ€๋กœ ํ’€๊ฑฐ๋ผ๊ณ ๋Š” ์ƒ์ƒ๋„ ๋ชปํ•œ ์ฝ”๋“œ

      package ์‹ฌ์„ฑํ—Œ.์•Œ๊ณ ๋ฆฌ์ฆ˜_3์ฃผ์ฐจ;
    
      import java.io.BufferedReader;
      import java.io.IOException;
      import java.io.InputStreamReader;
    
      public class ๊ฑฐ์Šค๋ฆ„๋ˆ_5585 {
          public static void main(String[] args) throws NumberFormatException, IOException {
              BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
              int n = 1000 - Integer.parseInt(br.readLine());
              int[] coin = { 500, 100, 50, 10, 5, 1 };
              int count = 0;
              int result = 0;
    
              for (int i = 0; i < coin.length; i++) {
                  if (n >= coin[i]) {
                      count = n / coin[i];
                      result += count;
                      n = n - (coin[i] * count);
                  }
    
              }
              System.out.println(result);
          }
    
      }

1์ฐจ์› ๋ฐฐ์—ด์„ ์ด์šฉํ•ด์„œ ๋™์ „ ์ข…๋ฅ˜๋ฅผ ์ €์žฅํ–ˆ๋‹ค. ์ฆ‰, ๊ฐ ํšก๋‹จ์— ์กด์žฌํ•˜๋Š” ๋…ธ๋“œ์˜ ์ข…๋ฅ˜๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ข‹์„ ๋“ฏ ํ•˜๋‹ค!
์ด์ œ 1์ฐจ์› ๋ฐฐ์—ด์˜ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณตํ•ด์„œ ๊ฑฐ์Šฌ๋Ÿฌ ์ค˜์•ผ ํ•  ์ตœ์†Œํ•œ์˜ ๋™์ „ ๊ฐœ์ˆ˜๋ฅผ ํŒŒ์•…ํ•˜๋ฉด ๋œ๋‹ค. ๋‚˜๋Š” ์•„๋ž˜์˜ ์‹์„ ์ด์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.

๋‚˜๋จธ์ง€ ๊ธˆ์•ก = ํ˜„์žฌ ๊ธˆ์•ก - (ํ˜„์žฌ ๋™์ „ ์ข…๋ฅ˜ * ๋™์ „ ๊ฐœ์ˆ˜)

์—ฌ๊ธฐ์„œ ๋™์ „ ๊ฐœ

์ˆ˜๋ฅผ ํŒŒ์•…ํ•  ์ €์žฅ์†Œ๋งŒ ์„ ์–ธํ•ด์ฃผ๋ฉด ์‰ฝ๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค!