백준 1181번: 단어 정렬
난이도 : 실버5
#python
import sys
n = int(sys.stdin.readline())
char_str = []
for i in range(n):
char_str.append(sys.stdin.readline().strip())
char_str = list(set(char_str))
char_str.sort()
char_str.sort(key = len)
for i in char_str:
print(i)
코드의 시간 초과를 피하기 위해서 input() 함수보다 시간이 덜 걸리는 sys.stdin.readline()을 이용해서 입력을 받았습니다.
char_str이라는 list를 만들어주고, n개만큼 값을 추가해주었습니다.
strip()함수는 문자열의 시작과 끝에서 공백을 제거하고 공백 없이 동일한 문자열을 반환합니다. sys.stdin.readline()은 공백이나 \n같은 보이지 않는 문자열도 모두 받아오기 때문에 strip()을 붙여서 없애줍니다.
그 다음 set(char_str)을 통해 중복 문자를 없애주고, 딕셔너리가 된 char_str을 다시 list로 만듭니다.
그 다음 sort()함수를 이용해서 사전 순으로 정렬을 해주고, 다시 한번 sort(key = len)을 이용해서 길이 순으로 정렬을 해줍니다.