알고리즘 풀이/백준

[백준][Java] 1789번 수들의 합

배게 2018. 5. 16. 03:57
728x90

i와 res값을 long으로 선언하지 않고 int로 선언하여

시간초과가 떴습니다.

왜 시간초과인지는 이해 안 되지만

int에서 long으로 바꿔줍니다.


그 다음 logic은 '초과값 넘기기전의 i값인가?'

생각하며 '설마 이렇게 쉬운 것이 정답일까?'했던 것이

정답이었습니다.



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import java.util.Scanner;

public class Main {
	
	public static void main(String[] args)  {
		
		 Scanner sc = new Scanner (System.in);
		 
		 long a = Long.parseLong(sc.nextLine());
		 long i=1,res=0;
		 
		 while(true) {
			 if(res+i<=a) res+=i++;
			 else break;
		 }
		 System.out.println(i-1);
	}
}