JiSoo's Devlog
[백준 / 파이썬] 1181번 단어 정렬 본문
n = int(input())
w = []
for i in range(n):
w.append(input())
set_w = list(set(w))
sort_w = []
for i in set_w:
sort_w.append((len(i), i))
re = sorted(sort_w)
for l_w, w in re:
print(w)
집합 자료형 set은 중복 허용 X, 순서 X -> 자료형의 중복을 제거하기 위한 필터 역할로 종종 사용
sort의 기본값은 오름차순 정렬, reverse=True는 내림차순
sort의 key 옵션에 지정된 함수의 결과에 따라 정렬 ex) sort(key=len)
sorted는 순서대로 정렬, 정렬된 리스트 반환
중복을 허용하지 않는 set을 이용해 중복 제거하고 집합 자료형은 { }로 묶이기 때문에 [ ]로 묶어주기 위해 list 사용
set을 진행한 리스트를 for문을 통해 (2, 'im'), (4, 'wait') 이런 식으로 묶어 저장
sorted 사용하면 숫자와 문자 순서대로 자동 정렬
정렬한 리스트에 각 인덱스마다 2개의 인수가 있기 때문에 for문에서 매개변수 2개를 쓰고 필요한 w만 출력
찾아보니 각 단어 길이가 최대 50이라 import sys를 사용해도 될 거 같다
n = int(input())
ws = []
for i in range(n):
w = input()
if w not in ws:
ws.append(w)
ws.sort()
ws.sort(key=len)
for i in ws:
print(i)
for문 안에 if문을 사용해 처음부터 중복을 받지 않고 리스트에 저장
sort로 오름차순 정렬하고 key를 사용해 길이 정렬
길이 정렬 먼저 하면 길이정렬 된 상태에서 오름차순이 돼서 주의
728x90
'코테준비' 카테고리의 다른 글
[백준 / 파이썬] 1436번 영화감독 숌 (0) | 2024.01.10 |
---|---|
[백준 / 파이썬] 2292번 벌집 (0) | 2024.01.10 |
[백준 / 파이썬] 10989번 수 정렬하기3 (1) | 2024.01.09 |
[백준 / 파이썬] 2609번 최대공약수와 최소공배수 (0) | 2024.01.09 |
[백준 / 파이썬] 1978번 소수 찾기 (1) | 2024.01.09 |