より大きなプログラマの作成
1673 ワード
🙂 質問-大数の作成
url : https://programmers.co.kr/learn/courses/30/lessons/42883
勘定科目の問題の内容
ある数字からk個の数字を削除しようとしたときに得られる最大の数字を取得しようとします.
たとえば、2つの数字が1924から削除された場合、[19,12,14,14,92,94,24]を作成することができる.このうち最大の数字は94です.
解関数のパラメータとして文字列形式で与えられた数値と削除する数値kを用いる.solution関数を完了し、numberからk個の数値を削除したときに作成できる最大数値を文字列で返します.
制限
🖐解答方法
📃 CODE
def solution(number, k):
answer = ''
stack = []
remain = []
for s in number:
if k ==0:
remain.append(s)
continue
while(1):
if k == 0:
stack.append(s)
break
if len(stack) == 0:
stack.append(s)
break
elif int(stack[-1]) < int(s):
del stack[-1]
k-=1
elif int(stack[-1])>= int(s):
stack.append(s)
break
for s in stack:
answer+=s
for s in remain:
answer+=s
if k > 0:
answer = answer[:len(answer)-k]
return answer
Reference
この問題について(より大きなプログラマの作成), 我々は、より多くの情報をここで見つけました https://velog.io/@choi-montaunk/프로그래머스-큰-수-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol