데이터 타입 런타임 에러

2024. 5. 6. 13:07TIL

✔오늘 배운 중요한 🔑 point

  • 잘못된 배열 인덱스 참조 뿐만 아니라  Int타입 ,Long타입 등 데이터 타입에 따라서도 런타임 오류가 발생하므로 알고리즘을 설계할때 데이터타입 선정에 있어서 신중하게 선택해야한다.

🎯 오늘 배운 내용

 

크기가 작은 부분문자열 알고리즘 문제를 풀다가 런타임 오류 발생

 

코드 자체가 짧기때문에 오히려 무엇이 문제인지를 찾아내기가 많이 힘들었다..

구글링을 해본 결과 대체로 배열의 크기 설정을 잘못했기 때문과 재귀함수로 인한 오류들이 많았는데 나의 경우는 이에 해당하지않았다.

 

해결

 

혹시 t와p의 문자열을 .toInt()로 변환할때  int형으로 변환하기에는 값이 너무 커서 문제일까 생각이 들어 

Int타입 대신 Long타입으로 변환하니 런타임 오류 없이 해결되었다.

Int형은 -2,147,483,648부터 2,147,483,647 까지의 값을 표현할 수 있는데

지금 이 알고리즘의 문제의 경우에는 음수는 포함하지 않으므로 2,147,483,647 까지의 값까지만 Int형으로 표현이 가능한 셈이다. 

Long타입은 양수로서는   9,223,372,036,854,775,807의 범위까지 표현이 가능하다

제한사항을 보면 t의 길이는 10000 이하로 되어있으므로 t의 길이가 매우 클경우도 생각해야하기 때문에 Int타입이 아닌 Long타입으로 변환해줘야한다

 

※따라서 toInt()를 toLong()으로 바꾸어 런타임오류 해결

 

 

 

🤔 어떻게 활용할까?

정수형 숫자를 사용할때 무턱대고 Int형 데이터 타입만 사용했었는데 큰 정수형 숫자의 경우에는 Long타입도 활용해줘야한다.

📓 오늘의 한줄

Εὕρηκα

- Ἀρχιμήδης | Archimedes-

 

 

'TIL' 카테고리의 다른 글

Tactical Design & REST API  (0) 2024.05.08
Spring이란  (0) 2024.05.07
(알고리즘) 3진법 뒤집기  (0) 2024.05.05
(알고리즘) 최대공약수와 최소공배수 구하기  (0) 2024.05.04
공간 복잡도  (0) 2024.05.03