본문 바로가기

탐욕법2

큰 수 만들기 Programmers 프로그래머스 C++ 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 number k return "1924" 2 "94" .. 2021. 4. 26.
Greedy Algorithm 탐욕법 정리 Dynamic Programming처럼 현 단계에서 이전 단계를 이끌어내는 기법에 비하여 Greedy Algorithm은 현 단계에서 가장 최적인 다음 단계를 만들어내는 기법이다. Greedy Algorithm의 가장 기본적인 원리는 최댓값 max[n] 혹은 최솟값 min[n] 에서 배열의 다음 값인 arr[n+1]의 값을 더하거나 빼서 max[n+1] 혹은 min[n+1]을 만들어내는 방식이다. 예를 들어서 a라는 지점에서 d라는 지점까지 가는 방법이 a->b->d a->c->d 2가지인 경우라고 생각을 해보자. a->b까지 걸리는 시간이 1시간, b->d까지 걸리는 시간이 1시간이고 a->c까지 걸리는 시간이 1시간 40분, c->d 까지 걸리는 시간이 40분 일 경우 우리는 당연하게도 a->b->d.. 2021. 4. 22.