728x90
이해하기
참고한 블로그⬇️
진짜... 진짜 감이 안 왔던 문제...!
사실 위 블로그를 보고도 정확히 이해하지는 못했다 ㅜㅅㅜ
- 전체 길이 - k번 비교할 수 있도록 구간을 나누어 각 구간별로 가장 큰 값을 선택하여 정답 문자열에 추가
- 이 때 각 구간 안에서 이전에 선택되었던 최댓값 이후의 값들 중에서 최댓값을 구할 것
e.g. "4177252841"
answer = "775841"
문제풀이
class Solution {
public String solution(String number, int k) {
int idx = 0;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < number.length() - k; i++) {
char max = 0;
for (int j = idx; j <= i + k; j++) {
if (max < number.charAt(j)) {
max = number.charAt(j);
idx = j + 1;
}
}
sb.append(max);
}
return sb.toString();
}
}
'JAVA > Coding Test Study' 카테고리의 다른 글
[Lv.2] 프로그래머스 - H-Index : Java (0) | 2024.04.15 |
---|---|
[Lv.3] 프로그래머스 - 단속카메라 : Java (0) | 2024.04.15 |
[Lv.1] 프로그래머스 - 예산 : Java (0) | 2024.04.15 |
[Lv.0] 프로그래머스 - 공백으로 구분하기 2 : Java (0) | 2024.04.15 |
[Lv.3] 프로그래머스 - 순위 : Java (0) | 2024.04.15 |