알고리즘/programmers
[ 프로그래머스 / 파이썬 ] 큰 수 만들기 - 탐욕법(Greedy)
jungeun960
2021. 5. 3. 18:50
프로그래머스 - 탐욕법(Greedy)
- Point. 앞자리가 높은 수가 되게 뽑으면, 무조건 높은 숫자가 된다 (참고)
- 스택을 생성한다
- number을 순회한다
- 스택에 원소가 존재하고 마지막 원소가 순회 수보다 작고 k가 0보다 크다면
- 마지막 원소를 빼고 k를 1줄인다
- 스택에 순회 수를 추가한다
- 스택에 원소가 존재하고 마지막 원소가 순회 수보다 작고 k가 0보다 크다면
- k가 0보다 크면 (ex) 앞 원소가 추가할 원소보다 커서 k 숫자가 안작아질 때)
- k개수를 뺀 나머지를 스택에 저장한다
- 스택을 이어붙여 하나의 문자열로 만든다
def solution(number, k):
stack = []
for num in number:
while len(stack)>0 and stack[-1] < num and k > 0:
stack.pop()
k -= 1
stack.append(num)
if k>0:
stack = stack[:-k]
return ''.join(stack)
반응형