[파이썬(Python)] 백준 10820번 문자열 분석

2024. 11. 16. 15:33·코딩테스트 대비
728x90

 

 

백준 10820번: 문자열 분석

문제 바로 가기


📌 문제

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

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

 

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

 

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

 

 

 

📝 문제 접근 방법

아이디어

문자열을 순회하면서 각각의 문자 유형(소문자, 대문자, 숫자, 공백)을 분류하고, 개수를 카운트하면 됩니다.
  1. 입력 처리
    • 여러 줄의 문자열이 주어지므로 sys.stdin.read()를 사용하여 한 번에 입력을 받고 splitlines()를 통해 줄 단위로 나눕니다.
    • 각 줄을 순회하며 처리를 진행합니다.
  2. 문자 분류와 개수 카운트
    • 문자열의 각 문자를 확인하면서 다음 조건에 따라 분류합니다
      • 소문자: islower() 로 확인
      • 대문자: isupper() 로 확인
      • 숫자: isdigit() 로 확인
      • 공백: isspace() 로 확인
    • 각각의 조건에 해당하는 문자의 개수를 sum() 을 이용해 한 줄씩 계산합니다.

 

주의사항

  1. 빈 문자열 처리
    • 입력 문자열 중에 완전히 빈 문자열 또는 공백으로만 이루어진 문자열이 포함될 수 있습니다.
    • 이런 경우에도 소문자, 대문자, 숫자, 공백 개수를 각각 0 0 0 n 형태로 출력해야 합니다.

 

 

 

👩‍💻 나의 답안

import sys

lines = sys.stdin.read().splitlines()

for line in lines:
    lower_count = sum(1 for char in line if char.islower())  # 소문자 개수
    upper_count = sum(1 for char in line if char.isupper())  # 대문자 개수
    digit_count = sum(1 for char in line if char.isdigit())  # 숫자 개수
    space_count = sum(1 for char in line if char.isspace())  # 공백 개수
    
    print(lower_count, upper_count, digit_count, space_count)

 

 

 

✨ 새로 알게 된 점

1. 여러 줄 입력 처리 방법

여러 줄 입력을 처리할 때 sys.stdin.read() 와 splitlines() 를 조합하는 방식이 매우 효과적이라는 것을 배웠습니다. sys.stdin.read() 는 표준 입력을 한꺼번에 읽어와 처리할 수 있게 해주며, 여러 줄의 데이터를 한꺼번에 받아야 하는 상황에서 특히 유용합니다. 여기에 splitlines() 를 사용하면 입력 데이터를 줄 단위로 나누면서, 각 줄 끝에 있는 줄바꿈 문자(\n) 를 자동으로 제거해 준다는 점이 큰 장점입니다.

 

 

 

 

 

 

728x90

'코딩테스트 대비' 카테고리의 다른 글

[파이썬(Python)] 백준 11656번 접미사 배열  (0) 2024.11.18
[파이썬(Python)] 백준 11655번 ROT13  (0) 2024.11.17
[파이썬(Python)] 백준 10809번 알파벳 찾기  (0) 2024.11.15
[파이썬(Python)] 백준 10808번 알파벳 개수  (0) 2024.11.15
[파이썬(Python)] 백준 1918번 후위 표기식  (0) 2024.11.14
'코딩테스트 대비' 카테고리의 다른 글
  • [파이썬(Python)] 백준 11656번 접미사 배열
  • [파이썬(Python)] 백준 11655번 ROT13
  • [파이썬(Python)] 백준 10809번 알파벳 찾기
  • [파이썬(Python)] 백준 10808번 알파벳 개수
랑뎁
랑뎁
  • 랑뎁
    RangDev.
    랑뎁
  • 전체
    오늘
    어제
    • 분류 전체보기 (270)
      • 취준 (59)
        • 경제신문스크랩 (59)
      • 파이썬 (2)
      • 코딩테스트 대비 (168)
      • 수학 (2)
      • 머신러닝 (0)
      • 컴퓨터비전 (1)
      • 강화학습 (33)
      • Git (3)
      • 자격증 (1)
        • 한국사 능력 검정 1급 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.2
랑뎁
[파이썬(Python)] 백준 10820번 문자열 분석
상단으로

티스토리툴바