코딩테스트/정올

정올 2499 저울 문제풀이

글로벌디노 2020. 7. 5. 00:25

정올 문제풀이

2499 : 저울

 

 

입력받은 숫자들을 더해서 만들 수 없는 최소 숫자를 구하기

 

제출코드

c++

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    int n;
    int arr[1000];

    scanf("%d", &n);
    for (int i = 0; i < n; i++)
        scanf("%d", arr + i);

    sort(arr, arr + n, less<int>());

    int res = 0;
    for (int i = 0; i < n; i++)
    {
        if (res + 1 < arr[i])
            break;
        res += arr[i];
    }
    ++res;

    printf("%d\n", res);

    return 0;
}

 

입력 예

7 
3 1 6 2 7 30 1

 

정렬!

1 1 2 3 6 7 30

 

res = 0;

res(0) + 1 < 1 ? false

res(0) += 1;

 

res(1) + 1 < 1 ? false

res(1) += 1;

 

res(2) + 1 < 2 ? false

res(2) += 2;

 

res(4) + 1 < 3 ? false

res(4) += 3;

 

res(7) + 1 < 6 ? false

res(7) += 6;

 

res(13) + 1 < 7 ? false

res(13) += 7;

 

res(20) + 1 < 30 ? true

break;

 

20까지 측정할 수 있고 21이 측정할 수 없는 최소숫자이다

'코딩테스트 > 정올' 카테고리의 다른 글

정올 614, 204, 1303 문제풀이  (0) 2022.06.08
정올 1183 동전 자판기(下) 문제풀이  (0) 2020.07.23
정올 2194 요플레 공장 문제풀이  (0) 2020.07.02
정올 1828 냉장고  (0) 2020.07.01
정올 1370 회의실 배정  (0) 2020.06.30