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);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 그룹 단어 체커_자바 (0) | 2022.11.10 |
---|---|
[백준] 통계학_자바 (0) | 2022.11.10 |
[백준] 색종이_자바 (0) | 2022.11.10 |
[백준]자바_3003번_킹, 퀀, 룩, 비숍, 나이트, 폰 (0) | 2021.04.27 |
[백준]자바_2914번_저작권 (0) | 2021.04.27 |