서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
입력
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
출력
첫째 줄에 자연수 N의 최댓값을 출력한다.
💡 1부터 더한 합이 S보다 커지면, (합-S)한 값 하나를 빼주면 됨
ex) 200 → 1+2+...+19+20 = 210 / 200이 되려면 10을 빼면 됨
for(int i=1; ; i++) {
if(sum > S) break;
sum += i;
ret++;
}
import java.io.*;
public class BOJ_1789 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long S = Long.parseLong(br.readLine());
long sum = 0;
int ret = 0;
for(int i=1; ; i++) {
if(sum > S) break;
sum += i;
ret++;
}
System.out.println(ret-1);
}
}
성공✨