Algorithm & Data Structures/Programers

Lv 2. 큰 수 만들기

Geisha 2024. 8. 3. 12:32

코드 흐름

  •  그리디 탐욕법을 이용하여 문제를 풀이하였다.
  • StringBuilder를 선언하고 for 문으로 i 에서 number.length() - k 까지 루프를 돈다.
  • for 문을 통해 idx 에서 i + k 까지 중 최대값을 찾아낸다.
  • max 를 최신화하고 sb에 저장한다.
  • sb.toString()을 리턴한다.
class Solution {
	public String solution(String number, int k) {
		String answer = "";
        
		int idx = 0;
		StringBuilder sb = new StringBuilder();
		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();
    }
}