소팅할 때 key를 설정하는 방법을 안다면 수월하게 풀 수 있는 문제같다.
나는 잘 몰라서 구글하긴 했지만..
sorted(key=)로 설정해 주면 된다.
구글하다가 나온 두가지 방법을 사용해 보았다
from operator import itemgetter
def solution(strings, n):
strings.sort()
return sorted(strings, key=itemgetter(n))
operator 공식문서
<itemgetter 사용법>
한개 또는 여러개를 지정해서 리턴할 수 있다.
from operator import itemgetter
print( itemgetter(1)('python') ) #y
print( itemgetter(1, 3, 5)('python') ) # ('y', 'h', 'n')
한 청크를 지정해서 리턴할 수 있다
from operator import itemgetter
arr = ['a','b','c','d']
print( itemgetter(slice(3, None))(arr) ) #['d']
dict()를 쓸 때 .get('key')대신 itemgetter로 밸류를 리턴받을 수 있다
from operator import itemgetter
thisdict = {
'fruit': 'dragonfruit',
'color' : 'pink'
}
thisdict['price'] = 3000
print( itemgetter('price')(thisdict) )
def solution(strings, n):
strings.sort()
return sorted(strings,key=lambda x:x[n])
itemgetter lambda
테스트 1 〉 통과 (0.01ms, 10.1MB) 통과 (0.00ms, 10.2MB)
테스트 2 〉 통과 (0.00ms, 10.1MB) 통과 (0.00ms, 10.1MB)
테스트 3 〉 통과 (0.01ms, 10.3MB) 통과 (0.01ms, 10.1MB)
테스트 4 〉 통과 (0.01ms, 10MB) 통과 (0.01ms, 10.1MB)
테스트 5 〉 통과 (0.01ms, 10.1MB) 통과 (0.00ms, 10.1MB)
테스트 6 〉 통과 (0.01ms, 9.99MB) 통과 (0.01ms, 10.1MB)
테스트 7 〉 통과 (0.01ms, 10.1MB) 통과 (0.01ms, 10.1MB)
테스트 8 〉 통과 (0.01ms, 10.3MB) 통과 (0.01ms, 10.1MB)
테스트 9 〉 통과 (0.00ms, 10.1MB) 통과 (0.01ms, 10.1MB)
테스트 10 〉 통과 (0.01ms, 10.2MB) 통과 (0.01ms, 10.1MB)
테스트 11 〉 통과 (0.01ms, 10.1MB) 통과 (0.01ms, 10.1MB)
테스트 12 〉 통과 (0.01ms, 10.2MB) 통과 (0.02ms, 10.2MB)