Bonfire
99클럽 코테 스터디 22일차 TIL Leetcode Remove K Digits 본문
Leetcode Remove K Digits
기본 아이디어는 숫자를 하나씩 체크하면서 작아지는 숫자가 그 숫자보다 큰 수들을 빼면서 k값을 줄여주는 것이었다.
문제를 다 풀고 다른 사람들 코드를 보고 나니 같은 코드인데 짧게 정리된 걸 보니 어떻게 저렇게 정리해서 생각할 수 있을지 궁금하다..
아직 아이디어에 비해 구현력이 부족하다는 걸 느꼈다.
나의 코드
import sys
class Solution:
def removeKdigits(self, num: str, k: int) -> str:
i=0
stack=[]
sys.set_int_max_str_digits(10**5)
while k>0 and i<len(num):
if stack:
if int(stack[-1])<=int(num[i]):
stack.append(num[i])
else:
while k>0 and stack and int(stack[-1])>int(num[i]):
stack.pop()
k-=1
stack.append(num[i])
else:
if num[i]!=0:
stack.append(num[i])
i+=1
if i<len(num):
stack.extend(num[i:])
while k>0 and stack:
x=stack.pop()
k-=1
if stack:
if int(stack[-1])>=int(x):
stack.pop()
stack.append(x)
if k>0 or not stack:
return "0"
else:
return str(int("".join(stack)))
'알고리즘 > 99 코테 스터디' 카테고리의 다른 글
99클럽 코테 스터디 24일차 TIL Leetcode Append K Integers With Minimal Sum (0) | 2024.06.21 |
---|---|
99클럽 코테 스터디 23일차 TIL leetcode minimum-lines-to-represent-a-line-char (0) | 2024.06.21 |
99클럽 코테 스터디 21일차 TIL LEETCODE Longest Palindromic Substring (0) | 2024.06.19 |
99클럽 코테 스터디 20일차 TIL Leetcode Next Greater Element III (0) | 2024.06.17 |
99클럽 코테 스터디 19일차 TIL Leetcode Count the Hidden Sequences (0) | 2024.06.16 |