프로그래머스 - 탐욕법(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)
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[ 프로그래머스 / 파이썬 ] 신규 아이디 추천 (0) | 2021.05.04 |
---|---|
[ 프로그래머스 / 파이썬 ] 키패드 누르기 (0) | 2021.05.04 |
[ 프로그래머스 / 파이썬 ] 구명보트 (0) | 2021.04.20 |
[ 프로그래머스 / 파이썬 ] 다리를 지나는 트럭 - deque (0) | 2021.04.17 |
[ 프로그래머스 / 파이썬 ] 프린터 - deque (0) | 2021.04.15 |