알고리즘 풀이/프로그래머스

[프로그래머스][JAVA] 큰 수 만들기 (스택, 그리디)

배게 2022. 3. 31. 11:38
728x90

Line:19

Stack클래스는 vector클래스를 상속받고 있기 때문에 get(i)메서드로 i번째 인자에 접근이 가능하다

 

Line:11

k-- > 0을 조건식에 붙어주는게 깔끔한 코드인듯

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.*;
 
class Solution {
    public String solution(String number, int k) {
        
        char[] res = new char[number.length()-k];
        Stack<Character> st =  new Stack<>();
        
        for(int i=0; i<number.length(); i++){
            char curr = number.charAt(i);
            while(!st.isEmpty() && st.peek()<curr && k-- >0){
                st.pop();
            }
            st.push(curr);
        }
        
        // System.out.println(st.size());
        for(int i=res.length-1; i>=0; i--){
            res[i] = st.get(i);
        }
        
 
        return new String(res);
    }
}
cs