Search

큰 수 만들기

알고리즘
탐욕법(Greedy)
플랫폼
프로그래머스
JCF
StringBuilder
상태
해결
생성 일시
2024/02/02 11:52
최종 편집 일시
2024/02/07 05:57

문제 설명

해결과정

Solution.java

import java.util.*; class Solution { public String solution(String number, int k) { String answer = ""; int start = 0; StringBuilder sb = new StringBuilder(number); int end = number.length() - k; while(0 < k) { // 가장 큰 문자의 인덱스를 저장할 변수 int maxIndex = findBigCharIndex(start, k, sb); char max = sb.charAt(maxIndex); while(sb.charAt(start) != max && 1 != sb.length()) { sb.delete(start,start+1); k--; } start++; if(start == end) { return sb.substring(0, start); } } return sb.toString(); } public int findBigCharIndex(int start, int k, StringBuilder sb) { // 가장 큰 문자를 저장할 변수 char max = ' '; // 가장 큰 문자의 인덱스를 저장할 변수 int maxIndex = 0; int end = (start + k) <= (sb.length()-1) ? (start + k) : (sb.length()-1); // 0부터 K까지의 문자들중 가장 큰 문자와 인덱스 탐색 for(int i = start; i <= end; i++) { // 현재 탐색중인 문자가 이전에 탐색한 문자보다 크다면 if(max < sb.charAt(i)) { // 이전에 탐색한 문자를 현재 탐색중인 문자로 max = sb.charAt(i); // 이전에 탐색한 인덱스를 현재 탐색중인 인덱스로 maxIndex = i; // 변경 } } return maxIndex; } }
Java
복사