‘프로그래머스 코딩테스트 고득점 Kit’ 문제 입니다. 😀
문제 👉 <코딩테스트 연습 - 큰 수 만들기 | 프로그래머스>
1. 문제
어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구한다.
2. 풀이
Greedy
를 이용한 문제 풀이
- index는 1 부터 이전 index와 비교한다.
- 이전 값이 작을 때 이전 값 제거
- 이전 값이 클 때
- index가 마지막이면 값 제거
- index + 1
3. 코드
class Solution {
public String solution(String number, int k) {
StringBuilder sb = new StringBuilder();
sb.append(number);
int idx = 1;
while (k != 0) {
// 이전값이 작을 때
if (idx >= 1 && sb.charAt(idx) > sb.charAt(idx-1)) {
sb.deleteCharAt(idx-1);
idx--;
k--;
}
// 이전값이 클 때
else {
// 맨 마지막일 때
if (idx == sb.length()-1) {
sb.deleteCharAt(idx);
idx--;
k--;
}
else {
idx++;
}
}
}
return sb.toString();
}
}
References
🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스] 섬 연결하기 [JAVA(자바)] (0) | 2021.11.25 |
---|---|
[프로그래머스] 체육복 [JAVA(자바)] (0) | 2021.11.25 |
[프로그래머스] 조이스틱 [JAVA(자바)] (0) | 2021.11.25 |
댓글