[boj 1181] [Python] 단어정렬

해질녘·2022년 1월 26일
0

ps

목록 보기
4/22

이 포스팅에서는 문제를 풀다가 찾아본 정보, 파이썬의 기본 정렬에 대해 정리해두었다.

1181 단어정렬

단어정렬은 단어를 다음 기준에 따라 정렬하는 문제이다.

  1. 단어의 길이에 따라
  2. 길이가 같은 경우 사전 순서대로

코드는 아래와 같다.

# 1181 단어 정렬

N = int(input())
ar = []
for i in range(N):
    tmp = input()
    ar.append(tmp)

ar = set(ar)
ar = sorted(ar)
ar = sorted(ar, key=len)
for i in range(len(ar)):
    print(ar[i])

문제의 의도는 아마 정렬 함수의 구현 아니었을까...

파이썬 쓰면 매우 게으르게 풀 수 있다고 느꼈기 때문에 (컴퓨터 용어의 lazy 아님.ㅋㅋ) 그것에 대해서 써보겠다.

Python Sorting

  • 파이썬 리스트 중복제거하는법
    • set을 씌운다
  • 파이썬 정렬하는 법: 기본은 사전순서
    • sorted(ar)
  • 파이썬 단어 길이별로 정렬하는 법
    • sorted(ar, key=len)
    • key 자리에 넣는 매개변수는 함수의 이름이어야 하는데, 해당 함수를 적용 후 그것을 기준삼아 정렬해준다.
  • 파이썬의 sorted()함수는 안정적인 정렬을 보장한다. 정렬 기준에서 동일한 항목이 여러개인 경우에, 정렬 전의 순서를 보장한다는 뜻이다.
    • 따라서 정렬 기준이 여러개인 경우, 그 기준을 순서대로 여러번 적용해도 흐트러지지 않는다.
  • list.sort()sorted(list)의 차이
    • list.sort()는 in-place 함수이다. list를 정렬하여 그것을 list에 저장한다. 반환값은 None이다.
    • sorted(list)는 list를 정렬하여 그것을 반환한다. 반환값은 정렬된 list이다. 기존 list에는 변형 없다.

출처

파이썬 문서 - sorting

0개의 댓글