문제 소개
- Level 1
- https://school.programmers.co.kr/learn/courses/30/lessons/147355
- 테스트 케이스
- "2147483649" / "2147483650” / 1

풀이
public class Pr147355 {
public int solution(String t, String p) {
int answer = 0;
int start = 0;
int end = p.length();
while(end < t.length()+1) {
long tmp = Long.parseLong(t.substring(start, end));
if(tmp <= Long.parseLong(p)) {
answer ++;
}
start ++;
end ++;
}
return answer;
}
}
- 투 포인터 방법을 이용하여 문제를 풀어보았다.
- start 와 end로 두 지점을 지정해주고, 한 칸씩 이동하면서 p 보다 작은 값이 있는 지 검사한다.
- 테스트 케이스를 추가한 이유는 String에서 변환하는 것이다 보니 int의 범위를 넘어가는 곳이 있었기에 추가하게 되었다.
'알고리즘 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] - 42885_구명보트 (0) | 2024.06.05 |
---|---|
[프로그래머스] - 42860_조이스틱 (0) | 2024.06.04 |
[프로그래머스] - 131705_삼총사 (0) | 2023.11.05 |
[프로그래머스] - 12930_이상한 문자 만들기 (1) | 2023.10.23 |
[프로그래머스] - 12982_예산 (0) | 2023.10.20 |
문제 소개
- Level 1
- https://school.programmers.co.kr/learn/courses/30/lessons/147355
- 테스트 케이스
- "2147483649" / "2147483650” / 1

풀이
public class Pr147355 {
public int solution(String t, String p) {
int answer = 0;
int start = 0;
int end = p.length();
while(end < t.length()+1) {
long tmp = Long.parseLong(t.substring(start, end));
if(tmp <= Long.parseLong(p)) {
answer ++;
}
start ++;
end ++;
}
return answer;
}
}
- 투 포인터 방법을 이용하여 문제를 풀어보았다.
- start 와 end로 두 지점을 지정해주고, 한 칸씩 이동하면서 p 보다 작은 값이 있는 지 검사한다.
- 테스트 케이스를 추가한 이유는 String에서 변환하는 것이다 보니 int의 범위를 넘어가는 곳이 있었기에 추가하게 되었다.
'알고리즘 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] - 42885_구명보트 (0) | 2024.06.05 |
---|---|
[프로그래머스] - 42860_조이스틱 (0) | 2024.06.04 |
[프로그래머스] - 131705_삼총사 (0) | 2023.11.05 |
[프로그래머스] - 12930_이상한 문자 만들기 (1) | 2023.10.23 |
[프로그래머스] - 12982_예산 (0) | 2023.10.20 |