Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 백준 #
- 프로그래머스 #가장 큰 물고기 10마리 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #이름이 있는 동물의 아이디 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #자동차 대여 기록에서 장기/단기 대여 구분하기 #코린이 #개발자 #study
- 백준 #일곱 난쟁이 #2309 #자바 #java #알고리즘 #코린이 #개발자 #study
- mysql #min() #max() #최소값 #최대값 #코린이 #개발자 #study
- 프로그래머스 #mysql #12세 이하인 여자 환자 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 백준 #4153 #직각삼각형 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #python 개발자 찾기 #알고리즘 #mysql #코린이 #개발자 #study
- 특정 옵션이 포함된 자동차 리스트 구하기 #코린이 #개발자 #study
- 백준 #다이얼 #5622 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #mysql #역순 정렬하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #인기있는 아이스크림 #코린이 #개발자 #study
- 백준 #네 번째 점 #3009 #자바 #java #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #나이 정보가 없는 회원 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #
- 프로그래머스 #동명 동물 수 찾기 #mysql #데이터베이스 #db #코린이 #개발자 #알고리즘
- 프로그래머스 #mysql #동명 동물 수 찾기 #알고리즘 #코린이 #개발자
- 코린이 #개발자 #study
- 프로그래머스 #mysql #흉부외과 또는 일반외과 의사 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #과일로 만든 아이스크림 고르기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #경기도에 위치한 식품창고 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #모음 제거 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #어린 동물 찾기 #코린이 #개발자 #study
- 프로그래머스 #한 해에 잡은 물고기 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #조건에 맞는 회원수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기의 평균 길이 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기 중 가장 큰 물고기의 길이 구하기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #아픈 동물 찾기 #mysql #알고리즘 #코린이 #개발자 #study
Archives
- Today
- Total
luke
[프로그래머스] - 크기가 작은 부분 문자열 (자바/Java) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/147355
문제.
풀이.
class Solution {
public int solution(String t, String p) {
int answer = 0;
for(int i = 0; i <= t.length() - p.length(); i++){
String substring = t.substring(i, i+p.length());
if (substring.compareTo(p) <= 0){
answer++;
}
}
return answer;
}
}
오늘 문제는 "크기가 작은 부분 문자열" 문제다.
두 번 시도 끝에 푼 문제... 두 번 전부다 런타임 에러가 났는데 그 이유에 대해 먼저 설명해보려 한다.
1. Integer로 형변환 할경우 런타임 에러가 난다. p의 길이가 18이 넘어가므로 Integer범위를 넘었던 것이다...
그것도 모르고 조건식에서도 문제가 발생했나 싶어 조건식도 바꿨는데 런타임 에러가 나서 더 고민했었다..
마침 바로 생각이나 다시 시도하니 문제없이 해결했다.
그럼 풀이 설명을 해보겠다.
1. substring() 함수를 사용해 문자열들을 규칙에 맞춰 잘라준다.
2. substring() 함수를 통해 자른 문자열들을 compareTo() 함수로 문자열 비교를 한다.
(문자열 자르는것 까지는 문제없을 거라 생각하지만 조건식이 중요하다 생각한다.)
3. 조건에 충족한다면 answer++ 증가하고 문제는 끝이다.
여기서 substring.compareTo(p) <= 0 조건이 어떻게 작동하는지 보겠다.
예제 입력 t = "10203"와 p = "15"을 가지고 실행한다면
- 첫 번째 비교: "10" vs "15"
- '1' == '1' (유니코드 49)
- '0' < '5' (유니코드 48 < 53)
- 따라서 "10" < "15"이고, cnt가 1 증가한다.
나머지 또한 같은 규칙으로 비교한다.
'알고리즘문제 > 프로그래머스(Java)' 카테고리의 다른 글
[프로그래머스] - 삼총사 (자바/Java) (0) | 2024.05.28 |
---|---|
[프로그래머스] - 이상한 문자 만들기 (자바/Java) (0) | 2024.05.25 |
[프로그래머스] - 3진법 뒤집기 (자바/Java) (0) | 2024.05.19 |
[프로그래머스] - 개미 군단 (자바/Java) (0) | 2024.05.10 |
[프로그래머스] - 같은 숫자는 싫어 (자바/Java) (0) | 2024.04.26 |