[백준] 1181번 단어 정렬 _ 문제 풀이

 


1. 문제

https://www.acmicpc.net/problem/1181

2. 풀이

  • 중복을 제거해주기 위하여 모든 문자열을 집합(set)에 저장합니다.
  • 저장한 집합을 리스트(list)로 변경한 이후에, (길이, 문자열) 튜플을 생성하여 정렬을 하면 바로 문제가 해결됩니다.
N = int(input())
arr = set()
[arr.add(input()) for _ in range(N)]
arr = sorted([(len(x), x) for x in arr])
[print(x[1]) for x in arr]

아래와 같이 key를 사용해도 문제가 해결 가능합니다.

N = int(input())
arr = set()
[arr.add(input()) for _ in range(N)]
arr = sorted(list(arr), key=lambda x : (len(x), x))
[print(x) for x in arr]