[프로그래머스 lv2] 큰 수 만들기(greedy/python c++)

밀루·2023년 4월 9일
0

백준 문제풀이

목록 보기
33/51

백준 2812번과 같은 문제다. https://www.acmicpc.net/problem/2812
백준에서는 골드 3으로 랭킹되어있지만 프로그래머스는 어째서인지 레벨 2다.
https://school.programmers.co.kr/learn/courses/30/parts/12244

def solution(number, k):
    stack = []
    for n in number:
        while stack and stack[-1] < n and k > 0:
            stack.pop()
            k -= 1
        stack.append(n)
    if k > 0:
        return ''.join(stack[:-k])
    return ''.join(stack)
#include <string>
#include <vector>
#include <iostream>
using namespace std;

string solution(string number, int k) {
    string answer = "";
    answer = number.substr(k); 
    for(int i = k-1;i >=0;i--){
        int j = 0;
        do{
            if(number[i] >= answer[j]){
                char temp = answer[j];
                answer[j] = number[i];
                number[i] = temp;
                j++;
            }else{
                break;
            }
        }while(1);
    }



    return answer;
}
profile
벨로그에 틀린 코드나 개선할 내용이 있을 수 있습니다. 지적은 언제나 환영합니다.

0개의 댓글