Problem Solving

알고리즘 :: 백준 :: 1159 - 농구 경기

soreDemo 2025. 1. 7. 10:28

 

문제

🔗문제링크

 

🔄 문제 및 입출력 조건 파악

  • 1 ≤ 선수의 수 ≤ 150
  • 각 선수의 성 ≤ 30글자, 소문자로 이뤄짐.
  • 성의 '첫 글자'가 같은 선수가 5명이상
    • 있다면 해당 첫글자들을 출력
    • 없다면 PREDAJA 출력.

✏️ 문제풀이

  • 중요한 건 입력받은 문자열의 첫 글자입니다.
  • 이전 문제(10808 알파벳 개수)에서 다뤘듯이, 소문자에 대응하는 26칸의 카운팅 배열을 만듭니다.
  • 각 이름의 첫 글자에 대응하는 배열 값을 증가시킵니다. ( `배열[(첫글자)-'a']++` )
  • 카운팅 배열을 순회하며 값이 5 이상이라면 다시 `(인덱스)+'a'`해줘서 소문자로 출력해줍니다.

📝 코드

#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
	array<int, 26> alpha = {0, };
	string S;
	cin >> S;
	for (char c : S) alpha[c - 'a']++;
	for (int i : alpha) cout << i << ' ';
}

 

🔗 코드 링크

🕧 결과