사전순 부분 문자열 (python)

SeoYng·2020년 9월 5일
0
post-custom-banner

스택 사용 기본 문제

👀 깃헙 소스

문제설명
문자열 s가 주어졌을 때 s로부터 만들 수 있는 부분 문자열 중 사전 순으로 가장 뒤에 나오는 문자열을 리턴하는 solution 함수를 완성해주세요.
예를 들어 문자열 xyb로 만들 수 있는 부분 문자열은 다음과 같습니다.
x
y
b
xy
xb
yb
xyb
이 중 사전 순으로 가장 뒤에 있는 문자열은 yb입니다.

입출력 예

s	result
xyb	yb
yxyc	yyc

솔루션
스택이 비어있거나 더 뒤에 오는 문자가 top에 위치해 있을경우 push해준다.
스택에 문자들이 있을 때는 top부터 현재 문자보다 뒤에 오는 문자를 만날때까지 pop해준다.

코드

# 파이썬
def solution(s):
    stack = []
    for char in s:
        while stack and stack[-1] < char:
            stack.pop()
        stack.append(char)
    return ''.join(stack)

주의
문자열을 반복할 때 맨위에 문자뿐만아니라 더 뒤에 있는 문자를 만날때까지 반복해주어야 한다.
(while 사용)

profile
Junior Web FE Developer
post-custom-banner

0개의 댓글