[스택] 가장 큰 수

2022. 3. 15. 01:13· 알고리즘

📍 stack

stack: LIFO
나중에 들어간 것이 먼저 나오고,
가장 먼저 들어간 것이 마지막에 나온다.

list 를 사용해서 append(), pop() 을 이용한다.

 

 

📌

입력된 숫자의 자릿수들 중 m개의 숫자를 제거하여 가장 큰 수를 만든다.

(단, 숫자의 순서는 유지한다.)

 

 

<input>

① 5276823 3

 

② 9977252641 5

 

 

✔️ code

 

import sys
sys.stdin=open("input.txt", "r")

n, m=map(int, input().split())
n=list(map(int, str(n)))    #str(n)으로 하나씩 접근해서 숫자로 변환
stack=[]

for i in n:
    #스택이 비어있지 않고
    #숫자가 아직 m개 제거되지 않았고
    #stack에 append() 되는 숫자보다 앞 숫자(stack[-1]) 가 작다면,
    while stack and m>0 and stack[-1]<i:
        stack.pop()
        m-=1
    stack.append(i)

'''
참고

if m!=0:
    #맨 뒤 m개의 자료가 제거된다.
    stack=stack[:-m]

#스택을 string 화
res=''.join(map(str, stack))
print(res)
'''
#반복문이 끝나고 제거할 자릿수가 남아있다면,
while m!=0:
    stack.pop() #stack[-1] 부터 제거해야 한다.
    m-=1

for i in stack:
    print(i, end='')

* 참조는 best code 에 해당

 

# solve:

 

숫자 하나를 자릿수로 접근해야 하기 때문에 str(n) 을 하고 list 에 담는다.

예를 들어 5 2 에서 7 이 append() 되었을 때 5 2 는 7 보다 모두 작기 때문에,

2->5 순서대로 pop() 된다.

반복문이 끝났으나 아직 m이 0이 아니라는 것은 제거해야 할 숫자가 남았다는 뜻이다.

이 때 마지막 두 수가 작은 수 이므로 pop() 시켜준다.

(만약 앞 자리 수보다 컸다면 앞자리가 pop() 되면서 m이 감소했을 것이다.)

 

'알고리즘' 카테고리의 다른 글

[스택] 쇠막대기  (0) 2022.03.23
[알고리즘] 프로그래머스 2016년  (0) 2022.03.18
[그리디] 역수열  (0) 2022.03.09
[알고리즘] 프로그래머스 실패율  (0) 2022.03.08
[그리디] 증가수열 만들기  (0) 2022.03.05
'알고리즘' 카테고리의 다른 글
  • [스택] 쇠막대기
  • [알고리즘] 프로그래머스 2016년
  • [그리디] 역수열
  • [알고리즘] 프로그래머스 실패율
오승미
오승미
오승미
프로그래밍 공부
오승미
전체
오늘
어제
  • 분류 전체보기 (114)
    • 개발 (31)
      • 배포 (2)
      • KAFKA (3)
      • MSA (11)
      • 리눅스 (2)
      • Spring (1)
      • FE (0)
    • SQL (6)
    • 알고리즘 (50)
    • JAVA (14)
    • 개발 서적 리뷰 (1)
      • Clean Code (1)
      • 실전 카프카 개발부터 운영까지 (0)
    • CS (12)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 관리

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
오승미
[스택] 가장 큰 수
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.