알고리즘 문제 풀이

파이썬 10820 풀이

파란색 가운 2023. 5. 5. 21:44

https://www.acmicpc.net/problem/10820

 

10820번: 문자열 분석

문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있

www.acmicpc.net

문제

문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.

각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.

입력

첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.

출력

첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.

예제 입력 1 복사

This is String
SPACE    1    SPACE
 S a M p L e I n P u T     
0L1A2S3T4L5I6N7E8

예제 출력 1 복사

10 2 0 2
0 10 1 8
5 6 0 16
0 8 9 0
import sys
# sys.stdin.readline()
from collections import deque

while(True):
   small = 0
   large = 0
   number = 0
   space = 0
   elem = sys.stdin.readline().rstrip('\n')
   if not elem:
      break
   for i in elem:
      if i>='a' and i<='z':
         small +=1
      elif i>='A' and i<='Z':
         large +=1
      elif i == ' ':
         space +=1
      elif i >='0' and i<='9':
         number +=1   
   print(small,large,number,space)

 

여기서 살펴봐야 할 점은 N개의 문자열이라고 했지만, N을 입력받는 칸이 없다.

개행문자 '\n'을 기점으로 신경써줘야 한다는 거고 그 조건을 통해 그 이전까지만 입력을 받게 해주는게 포인트였다.

그 아래 코드는 쉽게 해결할 수 있었다.

'알고리즘 문제 풀이' 카테고리의 다른 글

백준 1260 파이썬 풀이  (0) 2023.05.07
백준 11652 파이썬 풀이  (0) 2023.05.07
백준 11656 파이썬 풀이  (0) 2023.05.07
백준 11655 파이썬 풀이  (0) 2023.05.07
백준 10809 파이썬 풀이  (0) 2023.05.05