[프로그래머스] [LV2] 큰 수 만들기
업데이트:
📚 큰 수 만들기
링크📎 : https://programmers.co.kr/learn/courses/30/lessons/42883
난이도 ⭐️⭐️
📖 문제
📝 내 풀이
import java.util.*;
class Solution {
public String solution(String number, int k) {
String answer = "";
StringBuilder sb = new StringBuilder();
sb.append(number);
while(k-- > 0){
int len = sb.length();
int idx = len-1;
for(int i = 0; i < len - 1; i++){
if(sb.charAt(i) < sb.charAt(i+1)){
idx = i;
break;
}
}
sb.deleteCharAt(idx);
}
return sb.toString();
}
}
👊🏻 내 전략
- 크기에 가장 영향을 많이 미치는 수 앞에서부터 체크한다.
- 마치 msb(most significant bit)처럼 말이다.
- 가장 자릿 수 높은 거부터 차례대로 하면서 뒷자리수의 값이 더 크면 삭제
- k만큼 반복하면 된다
- idx의 초기 값을 len-1로 한 이유는 “1000” 1 일때를 생각해보자
- 만약 idx의 초기 값이 0이라면 “000”이 되어버린다.
끝-!
댓글남기기