728x90
문제
서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
입력
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
출력
첫째 줄에 자연수 N의 최댓값을 출력한다.
풀이
S를 최대한 많은 자연수로 이루는 방법이 N의 최댓값을 구할 수 있는 Greedy문제다.
S의 범위는 unsigned int인 점에 유의하자.
서로 다른 N개의 자연수로 구성되므로 자연수(num) 1을 1씩 증가시키며 S가 0미만이 되기까지 감산하면 된다.
S에서 감산한 num은 loop마지막에 1증가 후 조건식을 통해 중단되므로 num - 1이 N의 최댓값이 된다.
소스코드
출처
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 01439] 뒤집기 [C/C++] (0) | 2024.01.14 |
---|---|
[백준 13305] 주유소 [C/C++] (0) | 2024.01.13 |
[백준 02217] 로프 [C/C++] (1) | 2024.01.11 |
[백준 05585] 거스름돈 [C/C++] (1) | 2024.01.10 |
[백준 10845] 큐 [C/C++] (2) | 2024.01.04 |