DevKim

[Python] 백준 #10820 문자열 분석 본문

알고리즘 PS

[Python] 백준 #10820 문자열 분석

on_doing 2021. 1. 14. 19:43
728x90

www.acmicpc.net/problem/10820

 

10820번: 문자열 분석

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

www.acmicpc.net

파이썬 정규 표현식을 이용해서 구했다

 

<파이썬 정규 표현식 re>

 

- [] : [ ]사이의 문자들과 매치 되는지
ex.[abc] => abc 중에 하나라도 매치되면 매치 =[a-c]
- ^ 는 반대의 의미 <br>
[^0-9]는 숫자가 아닌 문자만 매치됨
- \d - 숫자와 매치, [0-9]와 동일한 표현식이다.
- \D - 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식이다.
- \s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다.
- \S - whitespace 문자가 아닌 것과 매치, [^ \t\n\r\f\v]와 동일한 표현식이다.
- \w - 문자+숫자(alphanumeric)와 매치, [a-zA-Z0-9_]와 동일한 표현식이다.
- \W - 문자+숫자(alphanumeric)가 아닌 문자와 매치, [^a-zA-Z0-9_]와 동일한 표현식이다.
- .은 줄바꿈 문자인 \n을 제외한 모든 문자와 매치됨을 의미
ex) a.b = a + 모든 문자중에 하나라도 있어야함 + b  
- * 는 0번 이상 반복을 의미함(존재해도되고 무한대로 반복해도됨) 
ex) ca*t = ct,cat,caaaat 모두 매치
- +는 1회 이상 반복될때 
- {}로 반복 횟수 제한 가능.
ex) ca{2}t = c + {a는 반드시 2번 반복} + t 
ex) ca{2,5}t = a는 2~5회 반복
- ? 는 앞에 문자가 있어도되고 없어도된다는 뜻

import re

while True:
    try:
        s=input()
        a=re.compile('[a-z]')
        b=re.compile('[A-Z]')
        c=re.compile('[0-9]')
        d=re.compile('\s')
        print(len(a.findall(s)),len(b.findall(s)),len(c.findall(s)),len(d.findall(s)))

    except:

        break
728x90

'알고리즘 PS' 카테고리의 다른 글

[Python] 백준 #1406 에디터  (0) 2021.01.14
[Python] 백준 #11655 ROT13  (0) 2021.01.14
[Python] 백준 #10808 알파벳 개수  (0) 2021.01.14
[Python] 백준 #10866 덱  (0) 2021.01.14
[Python] 백준 #10845 큐  (0) 2021.01.14
Comments