๋ฌธ์ œ

https://www.acmicpc.net/problem/2798

์„ค๋ช…

์ด๋ฌธ์ œ๋Š” ๋”ฑํžˆ ๊ฑฐ์ฐฝํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์“ธ ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค. ๊ทธ๋ƒฅ ์‚ผ์ค‘(?!)for๋ฌธ์„ ์ด์šฉํ•ด ๋…ธ๊ฐ€๋‹ค๋กœ 3๊ฐœ์˜ ํŒจ์˜ ๊ฐ’์„ ๋”ํ•˜๊ณ  max๋ณ€์ˆ˜์— ์žˆ๋Š” ๊ฐ’๋ณด๋‹ค ํฌ๊ณ  ์ด ํ•ฉ์ด 21์„ ๋„˜์ง€ ์•Š๋Š”์ง€๋งŒ ๊ฒ€์‚ฌํ•˜๋„๋ก ํ•˜์˜€๊ธฐ๋•Œ๋ฌธ์— ํฌ๊ฒŒ ์–ด๋ ค์šด ๋ถ€๋ถ„์€ ์—†์—ˆ๋‹ค. ๋‹จ์ง€ ํ ์ด๋ผ๋ฉด ์–ด์ฐจํ”ผ ๋ธŒ๋ก ์ฆˆ ๋‹จ๊ณ„์—์„œ๋Š” ์ƒ๊ด€ ์—†์„ ๊ฒƒ ๊ฐ™๊ธด ํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ๋ฌด์‹ํ•˜๊ฒŒ ๋ฐ˜๋ณต๋ฌธ์„ ์ค‘์ฒฉํ•˜์—ฌ ํ’€์—ˆ๋‹ค๋Š” ๋Š๋‚Œ์ด ๊ฐ•ํ•˜๊ฒŒ ๋“ค๊ธดํ•œ๋‹คโ€ฆ

์ฝ”๋“œ

#include <stdio.h>

int main() {
    int n,m;    //์นด๋“œ ๊ฐฏ์ˆ˜ , ์™ธ์น  ์ˆซ์ž
    int card[100]; //์นด๋“œ ํŒจ
    scanf("%d %d",&n,&m); //์นด๋“œ ๊ฐฏ์ˆ˜, ์™ธ์น  ์ˆซ์ž ์ž…๋ ฅ
    for(int i=0; i<n; i++)
        scanf("%d",&card[i]);   //ํŒจ ์ž…๋ ฅ
    int max = 0;
    for(int i=0; i<n; i++)
    {
        for(int j=i+1; j<n; j++)
        {
            for(int k=j+1; k<n; k++)
            {
                int temp = card[i] + card[j] + card[k];
                max = (temp>max) && (temp <= m) ? temp : max;
            }
        }
    }
    printf("%d",max);
    return 0;
}