๐Ÿงฉ Algorithm/[BOJ] Bronze

BOJ 2798๋ฒˆ : ๋ธ”๋ž™์žญ (C++/Bronze 2)

devCloud 2022. 7. 26. 17:14
728x90
 

2798๋ฒˆ: ๋ธ”๋ž™์žญ

์ฒซ์งธ ์ค„์— ์นด๋“œ์˜ ๊ฐœ์ˆ˜ N(3 ≤ N ≤ 100)๊ณผ M(10 ≤ M ≤ 300,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์นด๋“œ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ์ด ๊ฐ’์€ 100,000์„ ๋„˜์ง€ ์•Š๋Š” ์–‘์˜ ์ •์ˆ˜์ด๋‹ค. ํ•ฉ์ด M์„ ๋„˜์ง€ ์•Š๋Š” ์นด๋“œ 3์žฅ

www.acmicpc.net

๋ฌธ์ œ

๋ธ”๋ž™์žญ์—์„œ ๊ฐ ์นด๋“œ์—๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์“ฐ์—ฌ ์žˆ๋‹ค. ๊ทธ ๋‹ค์Œ, ๋”œ๋Ÿฌ๋Š” N์žฅ์˜ ์นด๋“œ๋ฅผ ๋ชจ๋‘ ์ˆซ์ž๊ฐ€ ๋ณด์ด๋„๋ก ๋ฐ”๋‹ฅ์— ๋†“๋Š”๋‹ค. ๊ทธ๋Ÿฐ ํ›„์— ๋”œ๋Ÿฌ๋Š” ์ˆซ์ž M์„ ํฌ๊ฒŒ ์™ธ์นœ๋‹ค.
์ด์ œ ํ”Œ๋ ˆ์ด์–ด๋Š” ์ œํ•œ๋œ ์‹œ๊ฐ„ ์•ˆ์— N์žฅ์˜ ์นด๋“œ ์ค‘์—์„œ 3์žฅ์˜ ์นด๋“œ๋ฅผ ๊ณจ๋ผ์•ผ ํ•œ๋‹ค. ๋ธ”๋ž™์žญ ๋ณ€ํ˜• ๊ฒŒ์ž„์ด๊ธฐ ๋•Œ๋ฌธ์—, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ณ ๋ฅธ ์นด๋“œ์˜ ํ•ฉ์€ M์„ ๋„˜์ง€ ์•Š์œผ๋ฉด์„œ M๊ณผ ์ตœ๋Œ€ํ•œ ๊ฐ€๊น๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
N์žฅ์˜ ์นด๋“œ์— ์จ์ ธ ์žˆ๋Š” ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, M์„ ๋„˜์ง€ ์•Š์œผ๋ฉด์„œ M์— ์ตœ๋Œ€ํ•œ ๊ฐ€๊นŒ์šด ์นด๋“œ 3์žฅ์˜ ํ•ฉ์„ ๊ตฌํ•ด ์ถœ๋ ฅํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์นด๋“œ์˜ ๊ฐœ์ˆ˜ N(3 ≤ N ≤ 100)๊ณผ M(10 ≤ M ≤ 300,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์นด๋“œ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ์ด ๊ฐ’์€ 100,000์„ ๋„˜์ง€ ์•Š๋Š” ์–‘์˜ ์ •์ˆ˜์ด๋‹ค. ํ•ฉ์ด M์„ ๋„˜์ง€ ์•Š๋Š” ์นด๋“œ 3์žฅ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋งŒ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— M์„ ๋„˜์ง€ ์•Š์œผ๋ฉด์„œ M์— ์ตœ๋Œ€ํ•œ ๊ฐ€๊นŒ์šด ์นด๋“œ 3์žฅ์˜ ํ•ฉ์„ ์ถœ๋ ฅํ•œ๋‹ค.


์˜ˆ์ œ ์ž…๋ ฅ

10 500
93 181 245 214 315 36 185 138 216 295

์˜ˆ์ œ ์ถœ๋ ฅ

497

๋ฌธ์ œ ํ’€์ด

๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•œ๋‹ค.

  1. 3์žฅ์˜ ์นด๋“œ๋ฅผ ๊ณ ๋ฅผ ๋•Œ, ์ฒ˜์Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ ๋ฅธ๋‹ค.
  2. ๊ทธ ๋‹ค์Œ์€ 1๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ์ œ์™ธํ•œ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ ๋ฅธ๋‹ค.
  3. ๋งˆ์ง€๋ง‰์€ 1๋ฒˆ์งธ ์ธ๋ฑ์Šค์™€ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ธ๋ฑ์Šค๋ฅผ ์ฐจ๋ก€๋กœ ๊ณ ๋ฅธ๋‹ค.
    Ex) [5, 6, 7] (i = 5, j = 6, k = 7)
  4. 3์žฅ์˜ ํ•ฉ์ด M์„ ๋„˜์ง€ ์•Š์„ ๋•Œ ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
    Ex) [5, 6, 7] < M (M์ด 21์ผ ๋•Œ, 3์žฅ์˜ ํ•ฉ์€ 18์ด๋‹ค.
  5. M์„ ๋„˜์ง€ ์•Š์œผ๋ฉด์„œ M๊ณผ ๊ทผ์ ‘ํ•œ ์ˆ˜๊ฐ€ ๋‚˜์™€๋„, ๋‹ค์Œ 3์žฅ์˜ ์นด๋“œ์˜ ํ•ฉ์ด M๊ณผ ๋” ๊ฐ€๊นŒ์šธ ์ง€ ๋ชจ๋ฅด๋‹ˆ ๋‹ค๋ฅธ ์นด๋“œ๋ฅผ ํ™•์ธํ•ด๋ณธ๋‹ค.

Solution

#include <iostream>
using namespace std;

int main() {
    int N, M, card[101], result = 0;
    cin >> N >> M;
    for(int i=0; i < N; i++)
        cin >> card[i];
        
    for(int i = 0; i < N; i++){
        for(int j = i + 1; j < N; j++){
            for(int k = j + 1; k < N; k++){
                int sum = 0;
                sum = card[i] + card[j] + card[k];
                if(sum > result && sum <= M){
                    result = sum;
                    break;
                }
            }
        }
    }
    cout << result;
    return 0;
}
728x90