알고리즘/백준
[백준] 수들의 합_자바
Ellie67
2022. 11. 12. 14:27
https://www.acmicpc.net/problem/1789
1789번: 수들의 합
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
www.acmicpc.net
자연수 N의 최댓값을 구해야하기 때문에 작은 자연수부터 더해야할 것이다.
EX) S=60
자연수 1부터 합이 60을 넘어갈 때까지 더한다. 11까지 더했을 때 60을 넘긴다.
1+2+3+4+5+6+7+8+9+10+11 = 66
60을 만드려면 66에서 6을 빼면 된다. 이렇게 되면 서로 다른 N개의 자연수를 더해 S를 만들 수 있다.
따라서 자연수 개수는 11-1 = 10개이다.
import java.util.Scanner;
public class P1789 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
long s = sc.nextLong();
long sum = 0;
int cnt = 0, i=1;
while(true){
if(s<sum){
cnt -= 1;
break;
}
sum += i;
i++;
cnt++;
}
System.out.println(cnt);
}
}