일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 데이터베이스
- 개발자기술면접
- 자바
- 공유락
- 네트워크
- 개발자면접
- 기술면접대비
- Application
- 객체지향언어
- 스프링
- stream
- 기술면접
- 자바8
- 백엔드
- 면접준비
- 자바면접
- lock
- 알고리즘
- DB
- 백엔드면접
- jpa
- 배타락
- java
- Spring
- 스트림
- http
- equals
- 운영체제
- 자바기술면접
- hashcode
Archives
- Today
- Total
서은파파의 추월차선
[알고리즘/프로그래머스] 크기가 작은 부분 문자열 본문
728x90
문제와 입출력 예제는 다음 그림과 같다.
해당 문제는 난이도가 1레벨이고 쉬운 문제지만 기본기와 놓치기 쉬운 에러를 잡는데 도움이 된다.
최초 답안지
class Solution {
public int solution(String t, String p) {
int answer = 0;
int tlen = t.length();
int plen = p.length();
int parseP = Integer.parseInt(p);
for(int i=0; i<=tlen-plen; i++) {
int result = Integer.parseInt(t.substring(i,i+plen));
if(result <= parseP) answer++;
}
return answer;
}
}
위 소스로 제출하니 테스트케이스는 잘 맞았지만, 최종 제출 시 런타임 에러가 몇개 씩 발견 되었다.
가만히 이유를 생각해보니 문자열의 길이가 최대 10,000이지 1만 자리의 문자열을 숫자로 표현한다면
int 형으로는 불가하다는 점을 바로 생각하지 못했다. (자료형을 실수하지 말자!!)
int 대신 long 으로 수정 후 답을 제출하니 성공적으로 모든 케이스를 정답시킬 수 있었다.
최종 답안지
class Solution {
public int solution(String t, String p) {
int answer = 0;
int tlen = t.length();
int plen = p.length();
long parseP = Long.parseLong(p);
for(int i=0; i<=tlen-plen; i++) {
long result = Long.parseLong(t.substring(i,i+plen));
if(result <= parseP) answer++;
}
return answer;
}
}
728x90
'Algorithm' 카테고리의 다른 글
[알고리즘/Java] DFS (Depth-First Search, 깊이 우선 탐색), BFS (Breadth-First Search, 너비 우선 탐색) (1) | 2025.02.01 |
---|---|
[알고리즘/Java] 최대공약수(GCD), 최소공배수(LMC) 함수 (1) | 2025.02.01 |