본문 바로가기
Study or Lecture/항해 99클럽 코딩테스트 스터디

99클럽 코딩테스트 스터디 2일차 TIL (비기너)

by yoondoo 2024. 10. 29.
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타입을 활용하자.

반응형

댓글