백준 1181 : 단어 정렬 - 파이썬

낙원·2022년 11월 23일
0

Baekjoon

목록 보기
10/15
post-thumbnail

문제

문제 링크

N개의 단어를 아래 규칙에 따라 정렬하는 문제다.

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

해결 방안

백준 4673 문제에서 집합 set을 활용했는데 여기서도 활용했다!

코드

import sys

n = int(sys.stdin.readline())

arr = set()

for i in range(n):
    word = sys.stdin.readline().rstrip()
    arr.add(word)

arr = sorted(arr)
arr = sorted(arr, key = len)

for i in arr:
    print(i)

새로 알게 된 내용

🎨sys.stdin.readline() 개행 문자 제거 방법!

sys.stdin.readline()은 데이터를 한줄 단위로 입력받기 때문에, 개행문자가 같이 입력받아 진다.

개행문자를 제거하려면, .rstrip()을 붙여주면 된다.

🎀sorted()의 인자

sorted( <list> , key = <function> , reverse = <bool>)

arr = sorted(arr, key = len)

커스텀할 비교 함수를 넣어주면 된다.
비교 함수는 비교할 아이템의 요소를 반환하면 된다.
비교 함수는 익명 함수(lambda) 도 가능하고, 별도로 정의해도 된다.

reverse=True로 하면 역순으로 정렬한다.


0개의 댓글