본문 바로가기

백준/C++

[C++] 백준 1159번 - 농구 경기

728x90

 

 

문제 1159번

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

 

1159번: 농구 경기

상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작

www.acmicpc.net

 

입력받은 이름의 첫글자에 해당하는 인덱스를 check 배열에서 1증가시켜준다. 여기서 알파벳에 'a'를 빼주면 해당 글자의 인덱스가 나오게 된다. 즉, 첫 글자가 a라면 'a'를 뺏을 때 0이 나온다.

 

그렇게 첫 글자의 개수를 다 세면 5이상인 글자가 있는지 확인하여 참가할 수 있다는 표시로 predaja에 false를 해준다. 그리고 모든 알파벳(사전순이기 때문에 a~z순으로)이 저장된 s에 해당 인덱스에 있는 알파벳을 출력해준다.

 

만약 5이상인 수가 없어서 predaja를 해야한다면(predaja가 true인 경우) PREDAJA를 출력한다.

 

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

int main() {
	string s = "abcdefghijklmnopqrstuvwxyz";
	int check[26] = {};	//알파벳 26개
	int N;
	bool predaja = true;

	cin >> N;
	for (int i = 0; i < N; i++) {
		string a;
		cin >> a;
		//이름 첫글자에 a를 빼면 인덱스가 나옴 해당 인덱스에 1증가
		check[a[0] - 'a']++;
	}
	for (int i = 0; i < 26; i++) {
		if (check[i] >= 5) {
			predaja = false;
			cout << s[i];
		}
	}
	if (predaja) {
		cout << "PREDAJA";
	}
	return 0;
}

 

 

 

728x90