본문 바로가기
Baekjoon/[Code.plus] 알고리즘 기초 1/2

[BOJ/백준] 10820 문자열 분석

by 해적거북 2021. 7. 27.
728x90

● [문제번호 10820] 문자열 분석

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

 

10820번: 문자열 분석

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

www.acmicpc.net

 

● 알아야 할 것

: vector 자료구조와 메소드

: string 메소드

 

● 풀이 과정

: 몇 문장을 받을 지 모르니 주의하여 구현

1. 문자열을 입력 받고

2. 문자열의 문자 하나씩 확인하여 소문자, 대문자, 숫자, 공백 갯수를 알아내고

3. 출력 후 (1~3) 반복

 

: 중단점은 입력한 문자열의 길이가 0 인 경우

 

● 주의 할 것

: 몇 문장을 받는지 주어진 정보가 없으므로 주의해야함

 

● 참고 할 것

: NULL

 

● 풀이 코드

#include <bits/stdc++.h>

using namespace std;

vector<int> v;
string str;


int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    // 몇 문장을 입력 받을 지 모르니 무한 반복문
    while(1)
    {
        // 공백있는 문자열 입력
        getline(cin, str);
        
        // 중단점 : 문자열의 길이가 0 인 경우 == 입력된 문자열이 없는 경우
        if(str.length() == 0)
            break;
        
        // 소문자, 대문자, 숫자, 공백의 개수를 저장하기 위한 vector
        // 0인 값으로 4개 할당
        v.assign(4, 0);
        
        for(int s = 0; s < str.length(); s++)
        {
            // 소문자인 경우
            if('a' <= str[s] && str[s] <= 'z')
                v[0]++;
            // 대문자인 경우
            else if('A' <= str[s] && str[s] <= 'Z')
                v[1]++;
            // 숫자인 경우
            else if('0' <= str[s] && str[s] <= '9')
                v[2]++;
            // 공백인 경우
            else if(str[s] == ' ')
                v[3]++;
        }
        
        // 출력
        for(int i = 0; i < v.size(); i++)
            cout << v[i] << " ";
        cout << "\n";
        
        // vector와 string 비우기
        v.clear();
        str.clear();
    }
    
    return 0;
}

 

 

● [백준] - [알고리즘 기초 1/2] - [203 - 자료구조 1 (참고)] 문제집

번호 문제 번호 문제 이름 풀이 링크
1 1935 후위 표기식2 https://pirateturtle.tistory.com/170
2 1918 후위 표기식 https://pirateturtle.tistory.com/171
3 10808 알파벳 개수 https://pirateturtle.tistory.com/172
4 10809 알파벳 찾기 https://pirateturtle.tistory.com/173
5 10820 문자열 분석 https://pirateturtle.tistory.com/174
6 2743 단어 길이 재기 https://pirateturtle.tistory.com/175
7 11655 ROT13 https://pirateturtle.tistory.com/176
8 10824 네 수 https://pirateturtle.tistory.com/177
9 11656 접미사 배열 https://pirateturtle.tistory.com/178

 

728x90

댓글