새소식

💻 Programming (프로그래밍)/C++ | 백준

[C++][백준] - 좋은놈 나쁜놈 (4447번)

  • -
https://www.acmicpc.net/problem/4447
 

4447번: 좋은놈 나쁜놈

비키니시티에는 초능력을 가진 수퍼 히어로들로 바글바글하다. 스폰지밥과 패트릭은 주어진 문자열로 좋은놈과 나쁜놈을 골라내려 한다. 스폰지밥: 우와, 문자열에서 강한 힘이 느껴지는데!

www.acmicpc.net

🔔 문제 : 

(0< n)인 n개의 (띄어쓰기 포함, 한 줄마다. 1(문자)<= 문자열 <= 25)인 문자열 을 입력받습니다. 

 

g, G 가 많으면 " is GOOD " 를 포함하여 출력

b, B 가 많으면 " is A BADDY " 를 포함하여 출력

둘이 같다면 " is NEUTRAL " 를 포함하여 출력 하는 문제입니다.

 

입력 값

8
Algorithm Crunching Man
Green Lantern
Boba Fett
Superman
Batman
Green Goblin
Barney
Spider Pig

 

출력 값

Algorithm Crunching Man is GOOD
Green Lantern is GOOD
Boba Fett is A BADDY
Superman is NEUTRAL
Batman is A BADDY
Green Goblin is GOOD
Barney is A BADDY
Spider Pig is GOOD

 


🔔 Kick Point :

string 라이브러리의, getline(cin, 변수명)을 받을 시, 이전에 n값의 입력값과 함께, 띄어쓰기가 주어지기에 이를 방지하기 위하여

 

cin.ignore() 함수를 사용하여 꼭 cin에 입력된 '\n' 를 지운 후 입력 받아야합니다.

 

이 후에는 문자의 갯수를 확인 후 각각 상황에 맞게 출력해주면 됩니다.


🔔 Code :

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

int main() {
	int n; cin >> n;
	cin.ignore();
	string str;
	while (n--) {
		int g(0), b(0);
		getline(cin, str);

		for (auto i : str) {
			if (i == 'g' || i == 'G') g++;
			else if (i == 'b' || i == 'B') b++;
		}
		cout << str << " is ";
		if(g == b) cout << "NEUTRAL" << '\n';
		else if(g > b) cout << "GOOD" << '\n';
		else cout << "A BADDY" << '\n';
	}
}

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.