‘n번째 문자가 같은 단어가 여러개면 사전순으로 정렬한다.’ -> 이것을 통해서 n번째 문자를 맨 앞으로 가져온 뒤 전체 리스트를 정렬하면 된다는 것을 알 수 있습니다.
문자열 바꾸기 (change) -> 정렬 -> 다시 바꿔주기 (rollback) 이러한 플로우로 구현하면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# 문자열 내 마음대로 정렬하기
defchange(s,n):temp=s[n]+s[:n]+s[n+1:]returntempdefrollback(s,n):temp=s[1:n+1]+s[0]+s[n+1:]returntempdefsolution(strings,n):answer=[]foriinrange(len(strings)):strings[i]=change(strings[i],n)strings.sort()foriinrange(len(strings)):answer.append(rollback(strings[i],n))returnanswer