๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[C++/PGS] Lv.2 : ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ (GREEDY) - retry

by xxilliant 2026. 4. 20.
728x90
๋ฐ˜์‘ํ˜•

 

https://school.programmers.co.kr/learn/courses/30/lessons/42883?language=cpp

 

 

๋‹ค์‹œํ’€์–ด๋ณด๊ธฐ ์‹œ๋ฆฌ์ฆˆ....

3๋…„์ „์— ์–ด์ฐŒ์ €์ฐŒ ํ’€์—ˆ๋˜ ๋ฌธ์ œ์ธ๋ฐ

๋„๋Œ€์ฒด ์–ด๋–ป๊ฒŒ ํ’€์—ˆ๋˜๊ฑด์ง€ ๊ธฐ์–ต์ด ์•ˆ ๋‚จ. ๋„ˆ๋ฌด ์–ด๋ ต๊ฒŒ ํ’€์—ˆ๋˜๋ฐ ์™œ ์ด๋žฌ์„๊นŒ..?

 

https://xxilliant.tistory.com/103

 

[C++/PGS] Lv.2 : ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ (GREEDY)

https://school.programmers.co.kr/learn/courses/30/lessons/42883 ๋ฌธ์ œ ์„ค๋ช… ์–ด๋–ค ์ˆซ์ž์—์„œ k๊ฐœ์˜ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ–ˆ์„ ๋•Œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ๊ตฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆซ์ž 1924์—์„œ ์ˆ˜ ๋‘ ๊ฐœ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด [19,

xxilliant.tistory.com

 

 

์ด๋ฒˆ์—๋Š” ๊ฐ€์žฅ ์ •์„ ๋ฐฉ๋ฒ•์ธ ์Šคํƒ์œผ๋กœ ํ•ด๊ฒฐํ–ˆ๋‹ค.

Stack์— ๋„ฃ์œผ๋ ค๋Š” ์ˆซ์ž๋ฅผ ๊ธฐ์กด stack์— ์žˆ๋Š” ์ˆซ์ž๋“ค๊ณผ ๋น„๊ตํ•˜๋Š” ๋กœ์ง์ด๋‹ค!

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋„˜ ์–ด๋ ต๋‹ค ใ… ,ใ… 

 

๋‚˜์˜ ํ’€์ด

#include <string>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;

string solution(string number, int k) {
    string answer = "";
    stack<char> st;
    st.push(number[0]);
    int cnt = 0; // ์ œ๊ฑฐํ•˜๋Š” ์ˆซ์ž๋ฅผ k๊ฐœ๊นŒ์ง€ ์นด์šดํŠธ
    for(int i = 1; i < number.length(); ++i){
        while(cnt<k && !st.empty() && st.top()<number[i]){
            st.pop();
            cnt++;
        }
        st.push(number[i]);
    }
    while(cnt<k && !st.empty()){
        st.pop();
        cnt++;
    }
    while(!st.empty()) {
        char a = st.top();
        answer += a;
        st.pop();
    }
    reverse(answer.begin(), answer.end());
    return answer;
}

728x90
๋ฐ˜์‘ํ˜•