728x90

<오늘의 학습 키워드>
- Long 변환
<오늘의 문제>
제목 : 크가 작은 부분 문자열

<풀이>
class Solution {
public int solution(String t, String p) {
int answer = 0;
long value = Long.valueOf(p);
for(int i = 0; i <= t.length() - p.length(); i++) {
long origin = Long.valueOf(t.substring(i,i+p.length()));
if (origin <= value) {
answer++;
}
}
return answer;
}
}
- t의 문자열에서 p의 길이 만큼씩 비교
<주의>
처음에 int로 풀다가 런타임 에러가 나서 보니깐 p의 길이가 최고 18자리 이하였다.
그래서 int로 할 경우 NumberFormatException이 발생 -> 런타임에러로 찍혔다.
Integer의 범위는 -2,147,483,648 ~ 2,147,483,647 인데 반해,
Long의 범위는 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 입니다.
<결론>
- int 형 말고 long형으로 풀어야한다.
- 특수한 경우가 아니면 코딩테스트에서 정수형을 다룰 땐 Long타입을 활용하자.
반응형
'Study or Lecture > 항해 99클럽 코딩테스트 스터디' 카테고리의 다른 글
| 항해 99클럽 코딩테스트 스터디 6일차 TIL (비기너) (0) | 2024.11.02 |
|---|---|
| 99클럽 코딩테스트 스터디 5일차 TIL (비기너) (1) | 2024.11.01 |
| 99클럽 코딩테스트 스터디 4일차 TIL (비기너) (0) | 2024.10.31 |
| 99클럽 코딩테스트 스터디 3일차 TIL (비기너) (0) | 2024.10.30 |
| 99클럽 코딩테스트 스터디 1일차 TIL (비기너) (0) | 2024.10.28 |
댓글