문자열 내 마음대로 정렬하기_프로그래머스_파이썬

  • 나의 풀이
def solution(strings, n):
    answer = []
    for i in range(len(strings)):
        strings[i]=strings[i][n]+strings[i]
    
    strings.sort()
    
    for i in range(len(strings)):
        answer.append(strings[i][1:])
    return answer
print(solution(["abce", "abcd", "cdx"],2))
['abcd', 'abce', 'cdx']
  • 다른 사람 풀이
조건 5 = 인덱스의 문자가 같은 문자열이 여럿  경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.

x의 n번째 인덱스 기준으로 정렬하고 조건5로인해 x의 순서대로 또 정렬합니다.

def solution(strings, n):
    return sorted(strings, key=lambda x: x[n] + x) 

print(solution(["abce", "abcd", "cdx"],2))
['abcd', 'abce', 'cdx']

인덱스로만 정렬한 경우 abce가 abcd보다 앞으로 오게 됩니다.

def solution(strings, n):
    return sorted(strings, key=lambda x: x[n]) 

print(solution(["abce", "abcd", "cdx"],2))
['abce', 'abcd', 'cdx']

Comments