728x90
1. 문제
서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
2. 풀이
1. 1부터 하나씩 올려가면서 S에서 i를 뺀다.
2. 만약 뺀 결과가 0보다 작으면 S의 절댓값크기 자연수를 더하지 않으면 된다. i-1을 출력하고 끝낸다.
3. 뺀 결과가 0이라면 i를 출력하고 끝낸다.
import java.io.*;
public class BOJ_1789_수들의합 {
public static void main(String[] args) throws IOException {
long S = Long.parseLong(new BufferedReader(new InputStreamReader(System.in)).readLine());
for(int i=1;;i++){
S-=i;
if(S<0){
System.out.println(i-1);
return;
}else if(S==0){
System.out.println(i);
return;
}
}
}
}
3. 결과
'코딩테스트 > BOJ' 카테고리의 다른 글
[BOJ] 1476 날짜 계산 - JAVA (0) | 2022.07.08 |
---|---|
[BOJ] 10610 30 - JAVA (0) | 2022.07.07 |
[BOJ] 2869 달팽이는 올라가고 싶다 - JAVA (0) | 2022.07.05 |
[BOJ] 2504 괄호의 값 - JAVA (0) | 2022.07.04 |
[BOJ] 10825 국영수 - JAVA (0) | 2022.07.03 |
댓글