PS/Baekjoon Online Judge

[백준 01789] 수들의 합 [C/C++]

kimyoungrok 2024. 1. 12. 13:00
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의 최댓값이 된다.


소스코드

보기


출처

 

1789번: 수들의 합

첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.

www.acmicpc.net

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