728x90
반응형
문제
백준 11656/실버4
https://www.acmicpc.net/problem/11656
문제 해석
접미사 : 어근이나 단어의 뒤에 붙어서 새로운 단어를 만드는 역할
즉, 녹음기 에서 기 자와 같이 단어 뒤에 붙는 단어를 의미한다.
문제에서 baekjoon 에서 baekjoon 자체가 접미사가 될 수 있고, b 뒤에 붙는 aekjoon, ba뒤에 붙는 ekjoon 이 접미사가 될 수 있으니, 접미사가 될 수 있는 모든 경우를 사전순으로 나열하라는 문제이다.
풀이전략
결국 접미사라는 것은 어느 범위부터 끝까지라는 것이 공통으로 구해야한다. 맨 앞에서부터 맨 끝, 2번째부터 맨 끝, 3번째부터 맨 끝...이렇게 반복하여 맨 끝부터 맨 끝까지의 단어를 슬라이싱 해서 가져와야한다.
슬라이싱을 할때는 s[1:] 이렇게 있으면 1번 인덱스부터 맨 끝까지 가져온다는 의미이고, 이를 반복해야하기에 i를 변수로 두고 반복문을 돌리면 될 것이다.
정렬 할 때는 내장함수 .sort()를 이용하면 자동으로 사전순으로 정렬이 될 것이고, 이를 출력만 해주면 된다.
코드
import sys;
s = sys.stdin.readline().rstrip(); #문자열 s 입력
lst = [s[i:] for i in range(len(s))] #앞자리를 한 자리씩 줄인 값을 리스트에 차례대로 넣기
lst.sort(); #사전순으로 정렬
for i in lst:
print(i); #출력
되게 간단하게 작성하였다.
고찰
리스트 내포를 이용하여 구성하였다. 딱히 어렵지는 않았으나 이게 실버4인 것은 좀 의외였다.
728x90
반응형
'코딩테스트 - 백준' 카테고리의 다른 글
[파이썬] 백준 1193번 「분수찾기」 (1) | 2023.12.10 |
---|---|
[파이썬] 백준 9613번 「GCD의 합」 (0) | 2023.12.09 |
[파이썬] 백준 1074번 「Z」 (4) | 2023.12.07 |
[파이썬] 백준 14425번 「문자열 집합」 (6) | 2023.12.06 |
[파이썬] 백준 2960번 「에라토스테네스의 체」 (2) | 2023.12.05 |