BOJ - 1159번 : 농구경기

EHminShoov2J·2023년 9월 6일
0

CPP/코딩테스트

목록 보기
16/25
post-thumbnail

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

Counting 배열로 접근

해당 문제를 읽어보면, 결국 첫글자들(소문자 알파벳)만을 사용하기 때문에, 크기 26(알파벳 26개다... 멍청하게 직접 계산하지말자 이제...)짜리 Int 배열을 만들어서 접근

문자열의 덧셈

string s 
s += "문자열"

위와같이 덧셈 가능하다. 파이썬에서 지원해주는 부분인데 CPP 에서도 가능하다!

문제 Source

#include <iostream>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;

int N;
string s, ans;
map<char, int> m; // 사실 첫 글자만 사용하는 부분이니, 그냥 cnt[] 배열로 진행해도 무방했다!

int main(){
    //N번 반복
    cin >> N;
    for(int i =0; i < N; i++){
        // 문자열 String에 담고 
        cin >> s;
        // 각각의 배열을 슬라이싱 해서 Map에 저장 밎 카운팅 
        m[s[0]] += 1; 
    }
    // Map 순회하면서 5 이상인 경우 ret에 저장
    for(auto item : m){
        if(item.second >= 5){
            ans += item.first; //위에 처럼 할 필요 없이 간단하게 문자열끼리 더해서 진행하는 것도 가능!
        }
    }
    //sort 하고 출력 
    
    if(ans.size() == 0){ // v.size()는 vector의 내장함수! 
        cout << "PREDAJA";
    }
    else cout << ans;
}

0개의 댓글