반응형
문제 : https://www.acmicpc.net/problem/1789
풀이 :
1+199 = 200
..1+2+197 = 200
... 1+2+3+194 = 200
이런식으로 해서 가장 많은 숫자의 합으로 이루어질때를 구하면 된다.
그래서 값을 더할 때마다 count를 증가시켰고, 최종 마지막때는 값이 더 커질수 있으니 그때는 count -1 을 해준다.
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = null;
st = new StringTokenizer(br.readLine());
long s = Long.parseLong(st.nextToken()); //서로 다른 n개의 자연수의 합이 s
long count=1;
long sum=1;
while(sum<s) {
count++;
sum+=count; // 1씩 증가 시킨값
}
if(sum>s) { //같거나 커지면 현재갯수 빼주기
count--;
}
System.out.println(count);
}
반응형
'Java > Algorithm' 카테고리의 다른 글
[Java-Algorithm] 백준 11653 소인수 분해 풀이 (0) | 2021.07.15 |
---|---|
[Java-Algorithm] Quick Sort 구현 및 설명 (0) | 2021.07.14 |
[Java-Algorithm] 백준 7576 토마토 풀이 (0) | 2021.06.15 |
[Java-Algorithm] 백준 2606 바이러스 풀이 (0) | 2021.06.14 |
[Java-Algorithm] 백준 2217 로프 풀이 (0) | 2021.06.14 |