Part4.1データ構造(スタック、キュー、ハッシュ、hip)最大数
4531 ワード
大数
私が思うコード
汚くてたまらない.解決できない...私は前の2種類を知っていますが、その後どのように数量を加えるか分かりませんか?
m回の重複数を見つけて、その後リストを合わせればいいのですが、それは...ちょっと...
スタックは?
これはLIFO Last In First Outを意味する.
リストで順番に追加したコンテンツをpopで入れること自体がスタックです.
9 9 9 9 7 2 5 6 4 2の場合
stringをlistにする
最初の数字9はスタックに入ります.
9
次の9は大きいほう、小さいほう
9 9
次の7は大きいほう、小さいほう
9 9 7
次は七つ大きいのを入れて、小さいのを出して
9 9 7 7
次の2は自分より大きいので外してから入れます
9 9 9 7 7(2消去)
次の5つは、自分より大きくなったら外してから入れます
9 9 9 7 7(5消去)
...
9 9 7 7 6 4 1
このとき、削除する総数が5のうち3であれば、残りの2はそのまま削除されます.
9 9 7 7 6
先生コード
私が思うコード
汚くてたまらない.解決できない...私は前の2種類を知っていますが、その後どのように数量を加えるか分かりませんか?
m回の重複数を見つけて、その後リストを合わせればいいのですが、それは...ちょっと...
スタックは?
これはLIFO Last In First Outを意味する.
リストで順番に追加したコンテンツをpopで入れること自体がスタックです.
9 9 9 9 7 2 5 6 4 2の場合
stringをlistにする
最初の数字9はスタックに入ります.
9
次の9は大きいほう、小さいほう
9 9
次の7は大きいほう、小さいほう
9 9 7
次は七つ大きいのを入れて、小さいのを出して
9 9 7 7
次の2は自分より大きいので外してから入れます
9 9 9 7 7(2消去)
次の5つは、自分より大きくなったら外してから入れます
9 9 9 7 7(5消去)
...
9 9 7 7 6 4 1
このとき、削除する総数が5のうち3であれば、残りの2はそのまま削除されます.
9 9 7 7 6
先生コード
#1. Alt+W+N 입력하고 Alt+W+V :
import sys
#from collections import deque # deque import
sys.stdin = open("input.txt", "rt")
num, m = map(int,input().split())
num = list(map(int,str(num))) #원소를 string처리 후 리스트로 만들어준다. 그럼 하나하나 접근을 하고 int화 시켜서 리스트화 시킨다
stack = []
for x in num:
while stack and m>0 and stack[-1]<x:# stack이 비어있지 않을 때, 스택의 맨 뒷 자리가 x보다(현재 나보다) 작으면 끄집어낸다.
stack.pop()
m-=1
stack.append(x)
#다 지우지 못한 경우
if m !=0:
stack = stack[:-m] #맨 뒤를 잘라준다.
#for문 돌면서 찍어도 되지만,
res=''.join(map(str,stack))
#조인 활용해서 string을 join시켜 str을 변환시켜서 res가 str화 되어 붙여주기가 되어 나온다.
print(res)
Reference
この問題について(Part4.1データ構造(スタック、キュー、ハッシュ、hip)最大数), 我々は、より多くの情報をここで見つけました https://velog.io/@angel_eugnen/Part4.1자료구조스택큐해쉬힙가장-큰-수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol