10820번: 문자열 분석
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있
www.acmicpc.net
이번 문제는 다른 문제와 다르게 종료 조건이 설정되어있지 않다.
따라서 문제에서 입력이 주어지지 않을 때 자동으로 입력받는 것을 그만해야 한다.
import sys
import string
L_alphabet = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
S_alphabet = list(''.join(L_alphabet).lower())
for T in sys.stdin:
T.rstrip()
small = 0; large =0; blank = 0; number =0
for i in T:
if i == ' ':
blank += 1
elif i in L_alphabet:
large += 1
elif i in S_alphabet:
small += 1
elif i in string.digits:
number += 1
print(small, large, number, blank)
for T in sys.stdin:
sys.stdin을 하게 되면 input()와 같이 터미널에서 입력을 받아서 이를 변수가 참조할 수 있도록 해준다.
단 input()과 다르게 입력이 더이상 없을 때 자동으로 종료하기 때문에 이와 같이 EOF가 따로 설정되어 있지 않을 때 매우 유용한 모듈이다.
코드에선 L_alphabet 리스트에 대문자의 원소를 넣고 이를 문자열로 변환하여 소문자 알파벳으로 변경했는데 이러한 방법말고 모듈을 통해 다음과 같이 대문자, 소문자 리스트를 만들 수 있다.
import string
L = [i for i in string.ascii_uppercase]
S = [i for i in string.ascii_lowercase]
print(L)
>>> ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
print(S)
>>> ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
출처:
docs.python.org/ko/3/library/sys.html
sys — 시스템 특정 파라미터와 함수 — Python 3.8.5 문서
sys — 시스템 특정 파라미터와 함수 이 모듈은 인터프리터에 의해 사용되거나 유지되는 일부 변수와 인터프리터와 강하게 상호 작용하는 함수에 대한 액세스를 제공합니다. 항상 사용 가능합니
docs.python.org
'컴퓨터 > BOJ' 카테고리의 다른 글
[BOJ](Phython) 15474번 : 鉛筆 / 정수 올림하는 방법 (0) | 2020.09.06 |
---|---|
[BOJ](Python) 15128번 : Congruent Numbers / 부동소수점 오차 (0) | 2020.09.06 |
[BOJ](Python) 8320번 : 직사각형을 만드는 방법 (0) | 2020.08.30 |
[BOJ](Python) 1010번 : 다리 놓기 (0) | 2020.08.30 |
[BOJ](Python) 6679번 : 싱기한 네자리 숫자 / n진법 변환 방법 (0) | 2020.08.30 |