[백준/Python] 1181)단어 정렬

Jimin_Note·약 12시간 전
0

[백준/Python]

목록 보기
27/27
post-thumbnail

✨ 2025.07.12 코딩테스트 문제 풀이

📌 문제: 단어 정렬

🧠 문제 설명

입력 : 알파벳 소문자로 이루어진 N개의 단어
조건 :

  • 길이가 짧은 순서
  • 길이가 같으면 사전 순으로
  • 중복된 단어는 한 번만 출력

💡 접근 방법

  • 단어를 입력받아 리스트에 저장한 뒤, set()을 바로 씌워서 중복 제거
  • 이후 sort(key=lambda x: (len(x), x))로 복합 기준 정렬
    → 단어 길이 오름차순 → 사전순으로 정렬되게 구성

💻 내가 작성한 코드

  • ⭕️ 1번째 답안
import sys

N = int(sys.stdin.readline())
words = list(set([input().strip() for _ in range(N)]))

words.sort(key=lambda x: (len(x), x))

for word in words:
    print(word)

✅ 배운 점

🔹 key=lambda x: (len(x), x) — 복합 정렬 조건

  • 정렬 기준이 2개일 땐 (기준1, 기준2) 형태의 튜플을 반환해서 처리
  • lambda가 낯설었지만, 직접 뜯어보니 정렬 기준 함수 역할이라는 게 이해됨
  • len(x)로 길이 정렬, x로 사전순 정렬됨

🔹 input().strip() 습관화

  • sys.stdin.readline()을 쓸 때는 개행 문자 제거를 꼭 해야 하므로 .strip()은 필수!
profile
Hello. I'm jimin:)

0개의 댓글