본문 바로가기

알고리즘/백준

백준 1181번 : 단어정렬(S5)

문제

알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.

  1. 길이가 짧은 것부터
  2. 길이가 같으면 사전 순으로

단, 중복된 단어는 하나만 남기고 제거해야 한다.

 

내 코드

import sys

input = sys.stdin.readline

    
def main() :
    n = int(input())
    data = []
    for _ in range(n) :
        data.append(input().rstrip())
    data = list(set(data))
    data.sort(key=lambda x: (len(x),x))
    for i in data :
        print(i)

            
def test() :
    return 0

if __name__ == "__main__" :
    main()

느낀점

1. set으로 중복 제거

2. sort에 정렬 순서를 lambda로 주기

 

풀이 시간

'알고리즘 > 백준' 카테고리의 다른 글

백준 18870번 : 좌표 압축(S2)  (0) 2025.01.28
백준 10814번 : 나이순 정렬(S5)  (0) 2025.01.28
백준 7568번 : 덩치(S5)  (0) 2025.01.28
백준 2839번 : 설탕배달(S4)  (0) 2025.01.28
백준 1436 번 : 영화감독 숌(S5)  (0) 2025.01.24