๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Code Tree

[์ฝ”๋“œํŠธ๋ฆฌ] Greedy - ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ / ๋™์ „ ์—ฐ์Šต๋ฌธ์ œ

by xxilliant 2023. 2. 22.
728x90
๋ฐ˜์‘ํ˜•

 

1, 4, 5 ๋™์ „์„ ์ด์šฉํ•˜์—ฌ 8์›์„ ๊ฑฐ์Šฌ๋Ÿฌ์ฃผ๊ธฐ ์œ„ํ•ด
ํ•„์š”ํ•œ ์ตœ์†Œ ๋™์ „์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.
 

์œ„ ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ๋‹น์—ฐํžˆ ํฐ ๋™์ „๋ถ€ํ„ฐ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํฐ ๋™์ „๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด 5 + 1 + 1 + 1์ด๋ฏ€๋กœ 4๊ฐœ์˜ ๋™์ „์ด ํ•„์š”ํ•˜์ง€๋งŒ,
4 + 4 ์—ญ์‹œ 8 ์ด๋ฏ€๋กœ ์ตœ์†Œ ๋™์ „์˜ ์ˆ˜๋Š” 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ๋‹ค์Œ ๊ฒฝ์šฐ๋Š” ์–ด๋–จ๊นŒ์š”?

 

1, 5, 10, 20 ๋™์ „์„ ์ด์šฉํ•˜์—ฌ 78์›์„ ๊ฑฐ์Šฌ๋Ÿฌ์ฃผ๊ธฐ ์œ„ํ•ด
ํ•„์š”ํ•œ ์ตœ์†Œ ๋™์ „์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.
 

์ด ๊ฒฝ์šฐ์—๋Š” ํฐ ๋™์ „๋ถ€ํ„ฐ ๊ฑฐ์Šฌ๋Ÿฌ์ฃผ๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ์ข‹์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ์ฃผ์–ด์ง„ ๋™์ „๋“ค์ด ์ „๋ถ€ ๋ฐฐ์ˆ˜๊ด€๊ณ„์— ๋†“์—ฌ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 

๊ทธ๋ ‡๊ธฐ์— ํฐ ๋™์ „์ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด, ์ž‘์€ ๋™์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ•ญ์ƒ ์ข‹์€ ์„ ํƒ์ด ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ๋ฐฐ์ˆ˜ ๊ด€๊ณ„์— ๋†“์—ฌ์žˆ๋Š” ๋™์ „์ด ์ฃผ์–ด์กŒ์„ ๋•Œ์—๋Š”, ํ•ญ์ƒ ํฐ ๋™์ „๋ถ€ํ„ฐ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด์ฒ˜๋Ÿผ ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ์ตœ์„ ์ด๋‹ค ์‹ถ์€ ๊ฒƒ์„ ๊ณ„์† ๋ฐ˜๋ณตํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์š•์‹ฌ์Ÿ์ด ๊ธฐ๋ฒ•์ด๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ greedy ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ฃผ์–ด์ง„ ๋™์ „๋ผ๋ฆฌ ๋ฐฐ์ˆ˜๊ด€๊ณ„์— ๋†“์—ฌ์žˆ๋Š” ๋ฌธ์ œ์—์„œ๋Š” ์‹ค์ œ ์ตœ์ ์˜ ๋‹ต์„ ๊ฐ€์ ธ์™€์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

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

 


 

์—ฐ์Šต๋ฌธ์ œ : ๋™์ „ ๋”ํ•˜๊ธฐ

์„œ๋กœ ๋‹ค๋ฅธ ๋™์ „ n ์ข…๋ฅ˜๋กœ ๊ธˆ์•ก k๋ฅผ ์™„์„ฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋™์ „ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

๋‹จ, 2๋ฒˆ์งธ๋ถ€ํ„ฐ ์ฃผ์–ด์ง€๋Š” ๋™์ „์˜ ๊ฐ€์น˜๊ฐ’์€ ํ•ญ์ƒ ๋ฐ”๋กœ ์ „ ๋™์ „์˜ ๊ฐ€์น˜์˜ ๋ฐฐ์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

์ž…๋ ฅ ํ˜•์‹

์ฒซ ๋ฒˆ์งธ ์ค„์— ๋™์ „์˜ ์ข…๋ฅ˜ ๊ฐœ์ˆ˜ n๊ณผ ๊ธˆ์•ก k๊ฐ€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ n๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๊ฐ ๋™์ „์˜ ๊ฐ€์น˜๊ฐ€ ์ž‘์€ ๋™์ „๋ถ€ํ„ฐ ํฐ ๋™์ „๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

  • 1 ≤ n ≤ 10
  • 1 ≤ k ≤ 100,000,000
  • 1 ≤ ๋™์ „์˜ ๊ฐ€์น˜ ≤ 1,000,000

๋‹จ, ์ฃผ์–ด์ง„ ๋™์ „๋“ค๋กœ k์›์„ ๋งŒ๋“ค์ง€ ๋ชปํ•˜๋Š” ์ž…๋ ฅ์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถœ๋ ฅ ํ˜•์‹

์ฒซ ๋ฒˆ์งธ ์ค„์— k์›์„ ๋งŒ๋“œ๋Š”๋ฐ ํ•„์š”ํ•œ ๋™์ „์˜ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.


๋‚˜์˜ ํ’€์ด

#include <iostream>
using namespace std;
int main() {
    int n; int k;
    int coin[11]={0,};
    cin >> n >> k;
    for(int i=0; i<n; ++i) cin >> coin[i];
    int cnt=0; int i=1;
    while(k!=0){
        if(k >= coin[n-i]) {
            k-=coin[n-i];
            cnt ++;
        }
        else i++;
    }
    cout << cnt;
    return 0;
}

 

ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ์ตœ์„ ์ธ ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋Š” ์š•์‹ฌ์Ÿ์ด!

๊ทผ๋ฐ ๋™์ „ ๋ฌธ์ œ์—์„œ์˜ ์š•์‹ฌ์Ÿ์ด ๊ธฐ๋ฒ• ์กฐ๊ฑด์€ ์˜ค๋Š˜ ์ฒ˜์Œ ์•Œ์•˜๋‹ค

๋ฐฐ์ˆ˜ ๊ด€๊ณ„ ๊ธฐ์–ตํ•˜๊ธฐ

 

728x90
๋ฐ˜์‘ํ˜•