문자열 내 마음대로 정렬하기_프로그래머스_파이썬
- 나의 풀이
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