[SWEA][Python3] 1256. [S/W 문제해결 응용] 6일차 - K번째 접미어
2019. 5. 30. 01:11 |
프로그래밍/삼성 SWEA
나의 풀이 :
T = int(input())
for tc in range(1, T + 1):
K = int(input())
S = input()
words = [S[i:] for i in range(len(S))]
ans = sorted(words)[K-1] if K <= len(S) else 'none'
print('#{} {}'.format(tc, ans))
한마디 :
위 풀이는 그냥 모든 접미사를 다 구해놓고 정렬해서 K번째 접미사를 구한 것이다.
아래 풀이는 일단 a부터 z까지 각각 시작하는 접미사를 분류한 다음 K번째 접미사가 속해 있는 단어 집합에서만 정렬을 시도한다.
나의 풀이 2 :
T = int(input())
for tc in range(1, T + 1):
K = int(input())
S = input()
suffix = [[] for _ in range(26)]
for i, c in enumerate(S):
idx = ord(c)-ord('a')
suffix[idx].append(S[i:])
ans = 'none'
for i, words in enumerate(suffix):
if K > len(words):
K -= len(words)
else:
ans = sorted(words)[K-1]
break
print('#{} {}'.format(tc, ans))
'프로그래밍 > 삼성 SWEA' 카테고리의 다른 글
[SWEA][Python3] 3421. 수제 버거 장인 (0) | 2019.05.31 |
---|---|
[SWEA][Python3] 3503. 초보자를 위한 점프대 배치하기 (0) | 2019.05.30 |
[SWEA][Python3] 1259. [S/W 문제해결 응용] 7일차 - 금속막대 (0) | 2019.05.29 |
[SWEA][Python3] 1265. [S/W 문제해결 응용] 9일차 - 달란트2 (0) | 2019.05.29 |
[SWEA][Python3] 4112. 이상한 피라미드 탐험 (0) | 2019.05.27 |
[SWEA][Python3] 1798. 범준이의 제주도 여행 계획 (0) | 2019.05.23 |
[SWEA][Python3] 1248. [S/W 문제해결 응용] 3일차 - 공통조상 (0) | 2019.05.18 |
[SWEA][Python3] 1245. [S/W 문제해결 응용] 2일차 - 균형점 (1) | 2019.05.17 |
최근에 달린 댓글 최근에 달린 댓글