백준 1181번 sort와 key

    문제 

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

     

    1181번: 단어 정렬

    첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

    www.acmicpc.net

     

    나의 풀이

    import sys
    num=int(input())
    strList=list()
    for i in range(num):
        strList.append(sys.stdin.readline().strip())
    
    strList=sorted(list(set(strList)))
    strList.sort(key=len)
    
    for i in range(len(strList)):
        print(strList[i])

     

    다른 사람의 풀이

    def key(s):
        return (len(s),s)
    
    for s in sorted(set([input() for n in range(int(input()))]), key=key):
        print(s)

    sort함수에서의 key값은 여러개의 요소를 기준으로 정렬할 경우 튜플을 사용할 수 있다.

    댓글