์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[๋ฐฑ์ค€(BOJ)] 11047๋ฒˆ: ๋™์ „ 0 (Greedy Algorithm(๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜), C++)

PROGRAMMING/Algorithm

by koharin 2021. 2. 26. 21:11

๋ณธ๋ฌธ

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“ ๋ฌธ์ œํ’€์ด ๊ณผ์ •


์ตœ์†Œ์˜ ๋™์ „ ๊ฐœ์ˆ˜๊ฐ€ ๋˜๋ ค๋ฉด ๊ฐ€์žฅ ํฐ ๋™์ „๋ถ€ํ„ฐ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๋ฐฐ์—ด A ๋์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰์„ ํ•˜๊ณ , A[i] > K์ด๋ฉด continueํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด count์— K / A[i], ์ฆ‰ A[i]์—์„œ ์ตœ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋™์ „ ๊ฐœ์ˆ˜๋ฅผ ๋”ํ•˜๊ณ , ๊ทธ๋งŒํผ K % A[i]๋ฅผ K๋ฅผ ์ค˜์„œ ์ด๋ฏธ ํ• ๋‹นํ•œ ๊ฒƒ์€ ์ œ์™ธํ–ˆ๋‹ค.

 

 

๐Ÿ’ป C++ ์ œ์ถœ์ฝ”๋“œ


#include <stdio.h>
using namespace std;

int main(){
    int N,K, count=0; // N: ๋™์ „์˜ ์ข…๋ฅ˜, K: ๊ฐ€์น˜์˜ ํ•ฉ
    scanf("%d %d", &N, &K);
    int A[N];

    for(int i=0; i<N; i++) scanf("%d", &A[i]);

    for(int i=N-1; i>=0; i--){
        if(A[i] > K) continue;
        count += K / A[i];
        K %= A[i];
    }
    printf("%d\n", count);
}

 

 

๐Ÿ‘ ๊ฒฐ๊ณผ


728x90
๋ฐ˜์‘ํ˜•

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ