처음에 문제를 접했을 때 sorted()를 생각하였지만 sorted() 안에 매개변수로 정렬할 문자열만 들어갈 수 있는 줄로만 알고 있어서 무엇을 기준으로 정렬할지 정할 수 있었으면 좋겠다 생각하고 다른 방법을 생각해 냈다
내가 작성한 코드
더보기
def solution(strings, n):
answer = []
new_str = []
for s in strings:
new_str += ["".join(s[n] + s[:n] + s[n+1:])] #Strings의 n번째값을 옮기기
new_str.sort()
for s2 in new_str:
answer += ["".join(s2[1:n+1] + s2[0] + s2[n+1:])] #새로 만든 new_str을 원래상태로 옮기기
return answer
약간의 노가다(?) 방식으로 직접 옮기는 것..
다른 분께서 작성한 코드
더보기
def strange_sort(strings, n):
return sorted(strings, key=lambda x: x[n])
내가 처음 생각했던 문자열의 n번째 문자를 기준으로 정렬을 하는 것이다
찾아보니 sorted() 안에 첫 번째 매개변수는 정렬할 문자, 두 번째 정렬할 기준을 넣을 수 있었다!
(이 문제에서는 strings의 각각의 문자열에 n번째에 있는 값이 기준이니 람다를 사용하여 x[n])
추가
+ reversed = True/False 해서 오름차순으로 할 것인지, 내림차순으로 정렬할 것인지도 정할 수 있다
+ 기준을 여러 가지를 둘 수도 있다. 그럴 땐 lambda x : x[n], x[n+1] .. 이런 식으로 첫 번째 기준을 거치고 그다음 두 번째 기준을 적용시킴
댓글