티스토리 뷰

📌문제

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

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

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

 

📌풀이

set을 사용하여 입력받은 단어들을 저장하면 자동으로 중복이 제거됨

 

sorted(words, key=lambda x: (len(x), x))

sorted() 함수는 튜플을 기준으로 정렬

key 인자가 튜플 (a, b)인 경우, 정렬은 튜플의 첫 번째 요소를 기준으로 정렬하고, 첫 번째 요소가 같으면 두 번째 요소를 기준으로 정렬

따라서 길이순 정렬, 길이가 같다면 사전순 정렬이 됨

 

 

📌코드

n = int(input())
words = set()  # 중복 제거를 위해 set 사용
for _ in range(n):
    words.add(input())  # 중복 자동 제거

sorted_words = sorted(words, key=lambda x: (len(x), x))

for word in sorted_words:
    print(word)

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함