코딩테스트/BOJ

[BOJ] 1789 수들의 합 - JAVA

5월._. 2022. 7. 6.
728x90

1. 문제

 

1789번: 수들의 합

첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.

www.acmicpc.net

서로 다른 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

댓글