![](https://blog.kakaocdn.net/dn/b24yFl/btsHVaF4oL7/46FRjc7oHb04GMevL2EYWK/img.png)
요약 : x와 n을 입력받아 x부터 시작하여 x씩 증가하는 n개의 리스트를 만들어 반환하라
문제의 내용 자체는 간단하다. x부터 시작하여 x씩 증가하는 n개의 수열을 만드는것이다.
일단 당장 생각나는대로 코드를 작성해본다.
![](https://blog.kakaocdn.net/dn/bXamXI/btsHTVQV7iW/HNK6ubWhfKu1ciKfBzKGck/img.png)
얼핏보면 x부터 시작하여 x만큼 증가하는 n크기의 리스트를 반환하는 조건을 만족하여 맞는것 같지만 틀렸다.
이유)
제한조건을 살펴보자
![](https://blog.kakaocdn.net/dn/cRtBgj/btsHUD25ten/5SryZVTnU0YZcForrRtVH0/img.png)
x가 -10,000,000이상, 10,000,000이하 라고 한다. 그렇다면 만약 x가 10,000,000이고 n이 1000이라면?
그렇다 숫자가 엄청나게 커진다. 그리고 잘 보면 answer 배열의 자료형은 long인것을 알 수 있다.
그리고 연산을 x를 기준으로 하는데, x의 자료형은 int형이다. int형의 범위는 -2,147,483,648 ~ 2,147,483,647 이다.
그럼 x가 10000000, n이 1000이면 리스트의 1000번째 요소는 10,000,000,000이다
즉, x의 자료형인 int형의 범위를 벗어난다. 이 숫자를 int형태로 저장하려하니 오류가 발생하는 것이다.
해결법)
int형을 long형으로 변환시켜 값을 전달하면 된다. long형의 범위는 -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807로 범위 안에 충족한다.
![](https://blog.kakaocdn.net/dn/dmXw5s/btsHTTTaXBQ/ge1KBMxebJegB7bpYL8uYk/img.png)
이렇게 형변환을 통해 큰 숫자를 담을 수 있게 변환하면 정상적으로 수가 들어간다. 우리가 주로 사용하고 익숙한 int형을 습관적으로 사용하는것을 노린 함정이라고 볼 수 있다. 이 문제는 자료형에 대해 다시한번 생각하게 해주는 문제인것같다.
'TIL(사전캠프)' 카테고리의 다른 글
SQL 코드카타. 경기도에 위치한 식품창고 목록 출력하기(2024-06-12) (0) | 2024.06.12 |
---|---|
알고리즘 코드카타. 자연수 뒤집어 배열로 만들기(2024-06-12) (0) | 2024.06.12 |
알고리즘 코드카타. 약수의 합(2024-06-11) (0) | 2024.06.11 |
알고리즘 코드카타. 나머지가 1이 되는 수 찾기(2024-06-10) (0) | 2024.06.10 |
SQL 코드카타 1. 이름에 EL 들어가는 동물 찾기(2024-06-07) (0) | 2024.06.07 |