algorithm

๋ฐฑ์ค€ 31845

rkawk 2024. 6. 21. 00:05

๋ฌธ์ œ

๋”๋ณด๊ธฐ

์ธํ•˜๋Œ€ํ•™๊ต ์ถ•์ œ๊ฐ€ ์—ด๋ฆฌ๋ฉด, ์ธ์ฒœ ์ตœ๋Œ€ ๊ทœ๋ชจ์˜ ์นด์ง€๋…ธ์ธ ์ธํ•˜ ์นด์ง€๋…ธ๋„ ํ•จ๊ป˜ ๋ฌธ์„ ์—ฐ๋‹ค. ์†๋‹˜๋“ค์˜ ๋” ๋งŽ์€ ์œ ์ž…์„ ์›ํ–ˆ๋˜ ์ธํ•˜ ์นด์ง€๋…ธ๋Š” ๋ชจ๋‘๊ฐ€ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ์นด๋“œ ๊ฒŒ์ž„์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์ƒˆ๋กœ์šด ์นด๋“œ ๊ฒŒ์ž„์˜ ์ง„ํ–‰ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋”œ๋Ÿฌ์™€ ํ”Œ๋ ˆ์ด์–ด๋Š” ๊ฐ๊ฐ 1๋ถ€ํ„ฐ ๐‘๊นŒ์ง€์˜ ์ •์ˆ˜๊ฐ€ ์ ํžŒ ์นด๋“œ๋ฅผ ํ•œ ์žฅ์”ฉ ๋ฐ›๋Š”๋‹ค. ๋”œ๋Ÿฌ๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ ํ˜€์žˆ์ง€ ์•Š์€ ๋”๋ฏธ ์นด๋“œ ํ•œ ์žฅ์„ ์ถ”๊ฐ€๋กœ ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”Œ๋ ˆ์ด์–ด๋Š” ๊ฐ€์ง„ ์ ์ˆ˜๊ฐ€ 0์ธ ์ƒํƒœ์—์„œ ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•˜์—ฌ ํ„ด์„ ๐‘€ํšŒ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ฐ ํ„ด์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰๋œ๋‹ค.

  1. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋”œ๋Ÿฌ์˜ ํŒจ์—์„œ ์›ํ•˜๋Š” ์นด๋“œ๋ฅผ ํ•˜๋‚˜ ๊ฐ€์ ธ์˜จ๋‹ค.
  2. ํ”Œ๋ ˆ์ด์–ด์˜ ํŒจ์—์„œ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง„ ์นด๋“œ ์Œ์ด ๋งŒ๋“ค์–ด์ง„ ๊ฒฝ์šฐ, ๊ทธ ์นด๋“œ ์Œ์€ ํŒจ์—์„œ ์ œ๊ฑฐ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์นด๋“œ ์Œ์— ์ ํžŒ ๊ฐ’์ด ๐‘–๋ผ๋ฉด ํ”Œ๋ ˆ์ด์–ด๋Š” ๐ด๐‘–์ ์„ ์–ป๋Š”๋‹ค. ์–ป๋Š” ์ ์ˆ˜๊ฐ€ ์Œ์ˆ˜์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ”Œ๋ ˆ์ด์–ด์˜ ์ ์ˆ˜๋„ ์Œ์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.
  3. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋”œ๋Ÿฌ์—๊ฒŒ ์ž์‹ ์˜ ํŒจ์—์„œ ์›ํ•˜๋Š” ์นด๋“œ๋ฅผ ํ•˜๋‚˜ ์ค€๋‹ค.
  4. ๋”œ๋Ÿฌ์˜ ํŒจ์—์„œ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง„ ์นด๋“œ ์Œ์ด ๋งŒ๋“ค์–ด์ง„ ๊ฒฝ์šฐ ๊ทธ ์นด๋“œ ์Œ์€ ํŒจ์—์„œ ์ œ๊ฑฐ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ ํ”Œ๋ ˆ์ด์–ด๋Š” ์ ์ˆ˜๋ฅผ ์–ป์ง€ ๋ชปํ•œ๋‹ค.

โ€Š๐‘€๋ฒˆ์งธ ํ„ด์„ ๋๋‚ด๊ฑฐ๋‚˜ ๋”๋ฏธ ์นด๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์นด๋“œ ์Œ์ด ์‚ฌ๋ผ์ง„ ์ˆœ๊ฐ„ ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋œ๋‹ค. ์ฆ‰, ํ„ด์ด ์ˆ˜ํ–‰๋˜๋Š” ๋„์ค‘์ด๋ผ๋„ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋”œ๋Ÿฌ์—๊ฒŒ ์นด๋“œ๋ฅผ ์ค„ ์ˆ˜ ์—†๋‹ค๋ฉด ๊ฒŒ์ž„์ด ์ฆ‰์‹œ ์ข…๋ฃŒ๋œ๋‹ค.

์ด ์นด๋“œ ๊ฒŒ์ž„์—์„œ ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋˜์—ˆ์„ ๋•Œ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์ž.

 

ํ’€์ด

๊ฒฝ์šฐ์˜ ์ˆ˜ ์ƒ๊ฐํ•˜๋‹ค ๋‘๋ฒˆํ‹€๋ ธ๋‹ค..

๋ชจ๋“  ๊ฒฝ์šฐ์—์„œ ๋”๋ฏธ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋†’์€ ์ ์ˆ˜์˜ ์นด๋“œ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉด, ๋ฌด์กฐ๊ฑด ๊ฐ€์žฅ ๋‚ฎ์€ ์ ์ˆ˜์˜ ์นด๋“œ๋ฅผ ํ•˜๋‚˜ ์ค˜์•ผํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๊ฐ€ ์Œ์ˆ˜๋ผ๋ฉด ์Šคํ‚ตํ•˜๋ฉด ๋œ๋‹ค.

์ž…๋ ฅ๋ฐ›์€ ์นด๋“œ๋ฅผ ํ•œ๋ฒˆ์”ฉ๋งŒ ๋Œ๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ •๋ ฌ์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ์ด ๋ฌธ์ œ์˜ ์‹œ๊ฐ„๋ณต์žก๋„์ด๋‹ค.

 

#include <iostream>
#include <algorithm>
using namespace std;
int N, M, arr[1001], ans;
int main() {
    cin>>N>>M;
    for(int i=0; i<N; i++) cin>>arr[i];
    sort(arr, arr+N);
    int banker = 0;
    for(int i=N-1; i>=banker; i--) {
        if(arr[i] > 0) {
            ans += arr[i];
            banker += 1;
        }
        if(i == N-M) break;
    }
    cout<<ans;
        
}