알고리즘 풀이/백준
[백준][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); } } |