728x90
SMALL
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

def solution(number, k):
stack = []
for num in number:
while k > 0 and stack and stack[-1] < num:
stack.pop()
k -= 1
stack.append(num)
if k != 0:
stack = stack[:-k]
return ''.join(stack)
- 저는 그리디 방식을 사용해서 각 숫자에 대해 최적의 해를 구하도록 노력해봤습니다.
- 또한 스택을 이용하여 효율적으로 숫자를 비교하고 제거할 수 있습니다.
- 각 숫자에 대해 스택의 마지막 요소와 비교하는데, 이때 현재 숫자(num)가 더 큰 경우에만 스택에서 숫자를 제거합니다.
- number를 왼쪽에서 오른쪽으로 순회하므로, 결과적으로는 왼쪽의 큰 숫자가 우선적으로 선택됩니다.
728x90
LIST
'알고리즘 문제 풀이 > 프로그래머스 (Level 2)' 카테고리의 다른 글
| 📗 숫자 카드 나누기 (1) | 2024.08.05 |
|---|---|
| 📗 메뉴 리뉴얼 (1) | 2024.07.26 |
| 📗 마법의 엘리베이터 (1) | 2024.07.23 |
| 📗 124 나라의 숫자 (0) | 2024.07.17 |
| 📗 연속된 부분 수열의 합 (2) | 2024.07.16 |