KimMinJun
Coding Note
KimMinJun
전체 방문자
오늘
어제
  • 분류 전체보기 (487) N
    • ALGORITHM (11)
      • 정렬 (6)
      • 최단경로 (1)
      • 자료구조 (1)
      • 슬라이딩 윈도우 (1)
      • etc (2)
    • Git (5)
    • Web (24)
      • Vanilla JS (13)
      • TS (2)
      • React (7)
      • ETC (1)
    • React 공식문서 (번역, 공부) (11)
      • Quick Start (2)
      • Installation (0)
      • Describing the UI (9)
      • Adding Interactivity (0)
      • Managing State (0)
      • Escape Hatches (0)
    • Next.js 공식문서 (번역, 공부) (3)
      • Getting Started (2)
      • Building Your Application (1)
    • PS (432) N
      • 백준 (187)
      • Programmers (105) N
      • CodeUp (21)
      • STL (3)
      • 제코베 JS 100제 (50)
      • SWEA (0)
      • LeetCode (65)
    • IT (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

인기 글

태그

  • 제코베 JS 100제
  • 문자열
  • tree
  • 정렬
  • C++
  • codeup
  • js
  • programmers
  • 수학
  • LeetCode
  • Level1
  • Level 0
  • 다이나믹 프로그래밍
  • Level 2
  • C
  • Level 1
  • 백준
  • string
  • 그래프
  • recursion

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun

Coding Note

PS/백준

백준 / 문자열 / 10820번 / 문자열 분석 / C++

2021. 7. 26. 19:03

문제

문자열 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

 

#include <iostream>
#include <string>
using namespace std;

int main() {
	string str;
	
	while (true) {
		int lower = 0;
		int upper = 0;
		int number = 0;
		int blank = 0;

		getline(cin, str);
		if (!str.length()) break;

		for (char const &c : str) {
			if (c >= 'a' && c <= 'z') {
				lower++;
			}
			else if (c >= 'A' && c <= 'Z') {
				upper++;
			}
			else if (c >= '0' && c <= '9') {
				number++;
			}
			else if (c == ' ') {
				blank++;
			}
		}
		printf("%d %d %d %d\n", lower, upper, number, blank);
	}

	return 0;
}

이 문제는 알고리즘이 너무 간단해서 따로 리뷰할 필요도 없을 것 같다.

다만 EOF를 어떻게 처리하냐 인데,

그냥 입력받는 문자열의 길이가 0일경우(입력이 없을경우) break를 걸어주었다.

 

다른 방법으로는 while(getline(cin, str)) 처럼 입력이있을때만 반복문을 도는식으로 조건문을 직접 적어주면된다.

저작자표시 (새창열림)

'PS > 백준' 카테고리의 다른 글

백준 / 구현 / 10824번 / 네 수 / C++  (0) 2021.07.30
백준 / 문자열 / 11655번 / ROT13 / C++  (0) 2021.07.30
백준 / 스택 / 1918번 / 후위 표기식 / C++  (0) 2021.07.26
백준 / 스택 / 1935번 / 후위 표기식 2 / C++  (0) 2021.07.24
    'PS/백준' 카테고리의 다른 글
    • 백준 / 구현 / 10824번 / 네 수 / C++
    • 백준 / 문자열 / 11655번 / ROT13 / C++
    • 백준 / 스택 / 1918번 / 후위 표기식 / C++
    • 백준 / 스택 / 1935번 / 후위 표기식 2 / C++
    KimMinJun
    KimMinJun

    티스토리툴바