티스토리 뷰
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/42883
2. 설명
number의 첫번째 인덱스로부터 인덱스 + k 까지 최댓값을 찾아서 answer에 삽입하는 방식으로 풀었다.
반복을 진행하는 것은 number 길이 - k 까지만 진행하면 된다.
j의 시작을 idx로 잡은 이유는 이미 선택한 최댓값을 지나치기 위해서!
탐욕법은 아직 어렵다.
3. 코드
class Solution {
public String solution(String number, int k) {
StringBuilder answer = new StringBuilder();
int idx = 0;
char max;
for(int i = 0; i < number.length() - k; i++) {
max = '0';
for(int j = idx; j <= k + i; j++) {
if(max < number.charAt(j)) {
max = number.charAt(j); // 최댓값 찾기
idx = j + 1;
}
}
answer.append(max);
}
return answer.toString();
}
}
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 단속카메라 JAVA (탐욕법, Greedy) (0) | 2020.06.30 |
---|---|
프로그래머스 더 맵게 JAVA (0) | 2020.06.29 |
프로그래머스 다리를 지나는 트럭 JAVA (0) | 2020.06.24 |
프로그래머스 짝지어 제거하기 JAVA (0) | 2020.06.18 |
프로그래머스 정수 삼각형 JAVA (0) | 2020.06.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday