본문 바로가기

알고리즘 문제풀이

백준 1181. 단어정렬 실버5

내 코드

N = int(input())
arr = [input() for _ in range(N)]
arr = list(set(arr))
arr.sort()
arr.sort(key=len)
# for i in range(len(arr)):
#     for j in range(len(arr)-i-1):
#         if len(arr[j]) > len(arr[j+1]):
#             arr[j],arr[j+1] = arr[j+1],arr[j]

for x in arr: print(x)

해보려 한 것

1. 버블정렬
시간초과가 나와서 sort 메서드로만 사용

배운 것

  1. sort(key=len) 문자열길이를 기준으로 정렬이 가능하다...는 것을 알았음
  2. arr = sorted(arr, key=lambda x: (len(x), x)) : 길이로 정렬(len(x)) -> 기본 정렬(=오름차순)(x)