반응형
#include <stdio.h>
int main()
{
long long s,c=0,n=1;
scanf("%lld", &s);
while (c<s)
{
c = (n * (n + 1)) / 2; // 가우스 공식
if (c > s)
break;
n++;
}
printf("%lld", n-1);
}
가우스 공식을 사용해서 만약 n 까지의 수의 합이 s 를 넘게 되면 그 전 수를 출력한다.
s 가 200 이라고 했을 때 n 이 20이 되면
1 부터 20 까지의 값이 210 이 되기 때문에 19 를 출력한다.
반응형
'알고리즘 > 그리디 알고리즘' 카테고리의 다른 글
[백준] 1439 - 뒤집기 (0) | 2023.02.01 |
---|---|
[벡준] 13365 - 주유소 (0) | 2023.01.30 |
[백준] 10162 - 전자레인지 (0) | 2023.01.25 |
[백준] 2217 - 로프 (0) | 2023.01.24 |
[백준] 1931 - 회의실 배정 (0) | 2023.01.19 |