Algorithm/백준

항해99 리부트코스 알고리즘 2주 3일차 백준 1181 단어 정렬

Albosa2lol 2024. 7. 26. 12:42

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

 

 

 

 

  • 단어 목록이 주어졌을 때, 단어를 정렬하는 프로그램을 작성
  • 정렬 기준은 두 가지다
    1. 길이가 짧은 것부터
    2. 길이가 같으면 사전 순으로

 

 

즉,

 

 

  • 주어진 단어 목록에서 중복을 제거
  • 중복이 제거된 단어 목록을 정렬(정렬의 기준은 단어의 길이, 단어 자체) 해야 한다.

 

 

 

1.단어 목록을 입력받고

2.중복을 제거

3.정렬된 단어 목록을 출력

 

순으로 코드를 작성해보자

 

 

import sys
input = sys.stdin.read

# 입력 받기
data = input().split()
n = int(data[0])
words = data[1:]

# 중복 제거
unique_words = list(set(words))

# 정렬
unique_words.sort(key=lambda x: (len(x), x))

# 결과 출력
for word in unique_words:
    print(word)

 

 

  • 입력 데이터를 한 번에 읽어와서 필요한 부분을 분리
  • 중복을 제거하고 고유한 단어 목록을 생성
  • 고유한 단어 목록을 정렬
    • lambda x: (len(x), x)를 사용하여 첫 번째 기준은 단어의 길이, 두 번째 기준은 단어 자체로 설정
  • 정렬된 단어 목록을 출력

 

 

lamda 함수에 대한 자세한 설명은 https://dilution0216.tistory.com/233