[백준] 11656 - 접미사 배열 (Python)

문제

https://www.acmicpc.net/problem/11656

제출 코드

import sys

input = sys.stdin.readline().rstrip()
stack = []

n = 0
while n < len(input):
    stack.append(input[n:])
    n += 1

stack.sort()
for s in stack:
    print(s)

결과


정리

개념

str[n:]은 문자열 str의 n번째 문자부터 끝까지를 가져온다.
ex) str = "hello" 일때 str[1:]은 "ello" 이고 str[3:]은 "lo" 이다.

정렬 함수

  • sort(): 원본 리스트 자체를 정렬하는 경우
    ex) stack.sort()
  • sorted(): 원본 리스트를 이용해 정렬한 새로운 리스트를 만드는 경우
    ex) newStack = sorted(stack)

주석있는 코드

import sys

input = sys.stdin.readline().rstrip()

# 접미사 저장할 스택
stack = []
n = 0
while n < len(input):
    stack.append(input[n:]) # n부터 끝까지 문자열을 stack에 저장
    n += 1

stack.sort() # 리스트 정렬
for s in stack: # 결과 출력
    print(s)

느낀점

역시 파이썬에는 똑똑한 함수들이 많다..ㅎ

좋은 웹페이지 즐겨찾기