•
문제 링크 : leetcode.com
•
문제 설명 : 공백으로 구분된 단어들의 마지막에 순번을 나타내는 숫자가 존재한다. 해당 순번대로 단어를 재정렬하여 문자열을 반환한다.
•
풀이 방법
◦
단어의 가장 마지막 문자를 기준으로 sort 처리한다.
◦
이후 단어의 가장 마지막 문자를 제외한 데이터를 join으로 붙인다.
•
시간복잡도 :
•
성공 코드
class Solution:
def sortSentence(self, s: str) -> str:
result = []
# 공백으로 문장을 구분 후, 마지막의 순서를 나타내는 숫자를 기준으로 정렬
# O(NlogN)
info = s.split(' ')
info.sort(key=lambda s: s[-1])
# 마지막 숫자 글자를 제외한 나머지 문장을 사용하여 문자열 생성
# 모든 sentence의 slice를 동작해도, 결국엔 s만큼 진행되기 떄문에 O(N)
for sentence in info:
result.append(sentence[:len(sentence)-1])
return ' '.join(result)
Python
복사