문제 : 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를 제거한다.
'코딩테스트 > 백준 (python)' 카테고리의 다른 글
백준 / 2566번 / 최댓값 / python 파이썬 (0) | 2024.06.02 |
---|---|
백준 / 1157번 / 단어 공부 / python 파이썬 (0) | 2024.05.29 |
백준 / 15552번 / 빠른 A+B / python 파이썬 (0) | 2024.05.28 |
백준 / 11718번 / 그대로 출력하기 / python 파이썬 (0) | 2024.05.25 |
백준 / 5622번 / 다이얼 / python 파이썬 (0) | 2024.05.25 |