입력값이 너무 크다 (4,294,967,295)
아이디어는 -1, -2 씩 빼주면서 만약에 뺀 값이 i 값보다 크거나 같으면 계속 반복을 해준다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int i = 1;
while (n > i) {
n -= i;
i++;
}
System.out.println(i - 1);
}
}
테스트 케이스는 잘 통과하는 데 문제가 뭐지..!
아 입력값을 long으로 받아야 하는 구나!
int 형이 몇 자리까지 되는지 한 번 더 정리하면
int (정수)
크기: 4 바이트
표현 범위: -2,147,483,648 ~ 2,147,483,647
long (정수)
크기: 8 바이트
표현 범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
그리고 하나 더!
1일 때 1을 출력해줘야 한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
long i = 1;
if (n == 1) {
System.out.println(1);
return;
}
while (n >= i) {
n -= i;
i++;
}
System.out.println(i - 1);
}
}