baekjoon, programmers

programmers 큰 수 만들기

leon-mcd 2025. 2. 15. 12:09

programmers

level2 큰 수 만들기

문제 설명

프로그래머스 로고
위의 이미지 클릭하시면 해당 문제로 이동합니다

#include <string>
#include <vector>

using namespace std;

string solution(string number, int k) {
    string answer = "";
    int start = 0, target = number.size() - k;

    for(int i = target; i > 0; i--){
        int max = 0;
        for(int j = start; j <= number.size() - i; j++){
            if(number[j] > max){
                max = number[j];
                start = j+1;
            }
        }
        answer+=max;
    }

    return answer;
}

풀이 과정

처음에는 필요한 만큼 큰 수를 뽑아서 인덱스 순서대로 정렬해서 해결하려 했지만 틀린 방식이란 걸 알았습니다.
중점은 선택할 수 있는 숫자 중에서 가장 큰 수를 고르는 것이 해결법이라고 생각해서 필요한 자릿수만큼을 배열의 뒤에서부터 제외하고 나머지 중 가장 큰 수를 선택한 뒤 바로 뒤의 인덱스부터 선택 가능한 인덱스까지 가장 큰 수를 고르는 방식으로 해결했습니다.

  • 요약
    1. 선택 가능한 수에서 가장 큰 수
    2. 선택 뒤에는 탐색의 시작 인덱스 이동

'baekjoon, programmers' 카테고리의 다른 글

programmers 연속된 부분 수열의 합  (0) 2025.02.15
programmers 다리를 지나는 트럭  (0) 2025.02.15
programmers 숫자 변환하기  (0) 2024.09.02