728x90
📚문제
📝풀이
# 1371번 가장 많은 글자(BronzeII)
import sys
sentence,alphabet = sys.stdin.read(), [0]*26
for i in sentence:
if i != ' ':
alphabet[ord(i)-97] += 1
for j in range(len(alphabet)):
if alphabet[j] == max(alphabet):
print(chr(j+97),end='')
입력의 개수가 주어지지 않고 최대만 주어져있는 문제이다
EOFError로 풀려고했는데
EOFError를 사용하려면 sys.stdin.readline()를 사용할 수 없고 input()만 사용해야한다
때문에 시간초과에 걸리게 된다...
그리고 이 방법이 훨씬 간단하다
기존에는 입력을 받을 때는 한 줄씩 받았기 때문에
개행문자를 포함한 sys.stdin.readline() 함수를 사용했는데
sys.stdin.read()를 사용하면
파일의 끝까지 한번에 모두 읽어보고 읽는대로 출력할 수 있다
sys.stdin.read()는
파일 전체(입력 스트림의 끝)를 문자열 하나로 취급하여 가져온다(개행문자도 포함)
참고링크 출처 : https://velog.io/@nang_zz/Python-sys.stdin.readline-readlines-read-%EC%B0%A8%EC%9D%B4
따라서 EOF Error를 고려하지 않아도
읽는 그대로 가져와서
코드를 작성할 수 있다
728x90
'Python(알고리즘,문제풀이) > BOJ(Bronze II)' 카테고리의 다른 글
백준 / 1440번 / 타임머신 / Python / 브루트포스 알고리즘 (0) | 2024.01.07 |
---|---|
백준 / 1408번 / 24 / Python / 수학,구현,사칙연산 (1) | 2024.01.06 |
**백준 / 1333번 / 부재중 전화 / Python / 구현,시뮬레이션** (1) | 2024.01.04 |
백준 / 1297번 / TV크기 / Python / 피타고라스정리 (0) | 2024.01.04 |
백준 / 1252번 / 이진수 덧셈 / Python / 수학,사칙연산 (0) | 2024.01.04 |