코딩테스트/백준 (python)
백준 / 1181번 / 단어 정렬 / python 파이썬
seulll
2024. 5. 27. 13:10
문제 : https://www.acmicpc.net/problem/1181
코드 (오답)
n = int(input())
s = []
for i in range(n):
s.append(input())
s.sort(key = len)
for i in s:
print(i)
중복된 단어는 하나만 남기고 제거한다는 조건을 보지 못하였고, input()을 사용해 속도가 느렸다.
재시도 (정답)
import sys
n = int(sys.stdin.readline())
s = []
for i in range(n):
s.append(sys.stdin.readline().strip())
set_s = set(s)
s = list(set_s)
s.sort()
s.sort(key = len)
for i in s:
print(i)
알게된 것
input() 대신 보다 빠른 sys.stdin.readlilne()을 사용하자
sys.stdin.readline()은 문자열로 입력받으며, 개행문자 \n을 같이 입력받는다. 따라서 따로 문자열 처리를 해줘야 한다. strip()을 이용해 개행 문자 없이 문자열을 입력받을 수 있다. strip()은 문자열 양 옆의 \n 또는 \t를 제거한다.