https://programmers.co.kr/learn/courses/30/lessons/42883
코딩테스트 연습 - 큰 수 만들기
programmers.co.kr
후기
진짜 뇌가 다 굳은거 같다. 이해가 안되서 다른분들 블로그 3개 진짜 정독한듯
풀이
1. 숫자의 길이가 n일때 k개를 짤라버리는 거니까 최종 출력의 길이는 n-k다.
-> 앞에 K개를 다 짤라먹을 생각을 하고 0부터 시작해서 K+1 개씩 계속해서 젤 큰 수를 찾는거다.
-> 총 선택해야할 숫자의 갯수는 n-k
ex)
1) 0~k+1 중에 가장 큰 숫자 택 1
중간에 가장 큰 숫자의 index가 3이였다고 치면
2) 4~K+2 까지 중에 큰 숫자 택 1
-> 만약 k+1번이 젤 큰 숫자였다해도 상관없다.
3) 이렇게 되면 이 직후 k+2~k+2중 선택이니 계속 K+2가 선택 될 것이다. - 반복
#include <string>
#include <vector>
using namespace std;
string solution(string number, int k) {
string answer = "";
vector<int> num;
for(int i=0;i<number.size();i++)
{
num.push_back(number[i]-'0');
}
int start_index =0;
for(int i=0;i<num.size()-k;i++)
{
int max_num = num[start_index];
int index = start_index;
for(int j=start_index;j<=i+k;j++)
{
if(num[j]>max_num)
{
max_num = num[j];
index =j;
}
}
start_index = index+1;
answer += to_string(max_num);
}
return answer;
}
'c++ > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 등굣길 c++ (DP 연습) (0) | 2021.06.23 |
---|---|
프로그래머스 : N으로 표현 c++ (0) | 2021.06.21 |
프로그래머스 : 조이스틱 c++ (1) | 2021.06.20 |
프로그래머스 : 위장 C++ (0) | 2021.06.19 |
프로그래머스 : 전화번호 목록 C++ (0) | 2021.06.19 |