알고리즘 공부/C++

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

마달랭 2024. 7. 21. 00:05
반응형

리뷰

N의 개수가 주어지지 않았다... 불친절한 문제

 

문제 풀이

  1. true 조건으로 while문을 개행해 주고 각 케이스 마다 문자열을 받아 주고 만약 문자열이 비었다면 break 해준다.
  2. 문자열의 각 문자를 참조하여 각각의 케이스마다 소문자, 대문자, 숫자, 공백의 숫자를 올려준다.
  3. 소문자, 대문자, 숫자, 공백의 순으로 개수를 출력해 준다.

 

참고 사항

  1. 혹시 모를 오류를 대비해 try-catch문으로 오류 발생 시 while루프를 break 해주었다.
  2. black, 숫자, 대문자, 소문자 순으로 if문을 구성하면 더 편하다.

 

정답 코드

#include <iostream>
#include <string>

using namespace std;

int main() {
	while (1) {
		try
		{
			string s;
			getline(cin, s);
			if (s == "") break;
			int small = 0, big = 0, num = 0, black = 0;
			for (int i = 0; i < s.size(); i++) {
				if (s[i] == ' ') black++;
				else if (s[i] < 65) num++;
				else if (s[i] < 97) big++;
				else small++;
			}
			cout << small << " " << big << " " << num << " " << black << "\n";
		}
		catch (const std::exception&)
		{
			break;
		}
	}
}

 

 

728x90
반응형

'알고리즘 공부 > C++' 카테고리의 다른 글

백준 10173번 니모를 찾아서 C++  (1) 2024.07.21
백준 2857번 FBI C++  (1) 2024.07.21
백준 11656번 접미사 배열 C++  (0) 2024.07.20
백준 2948번 2009년 C++  (1) 2024.07.20
백준 11655번 ROT13 C++  (0) 2024.07.20