Hueestory

[2019 KAKAO BLIND] - 오픈채팅방 (C++) 본문

PS(중단)/programmers

[2019 KAKAO BLIND] - 오픈채팅방 (C++)

히명 2024. 8. 28. 16:02
#include <string>
#include <vector>
#include <map>

using namespace std;

vector<string> solution(vector<string> record) {
    vector<string> answer;
    map <string, string> m1;
    vector<pair<string, string>> tmp;
    
    for (auto x : record){
        int a = x.find(" ");
        int b = x.find(" ", a + 1);
        string ioc = x.substr(0, a);
        string uid = x.substr(a + 1, b - a - 1);
        
        if (ioc == "Enter"){
            string name = x.substr(b + 1);
            m1[uid] = name;
            tmp.push_back(make_pair(uid, "들어왔습니다."));
        }
        else if (ioc == "Leave"){
            tmp.push_back(make_pair(uid, "나갔습니다."));
        }
        else if (ioc == "Change"){
            string name = x.substr(b + 1);
            m1[uid] = name;
        }
    }
    for (int i = 0; i < tmp.size(); i++){
        answer.push_back(m1[tmp[i].first] + "님이 " + tmp[i].second);
    }
    
    return answer;
}

 

1. substr의 두 번째 인수는 길이인데, index를 사용해 길이를 나타낼 수 있다

 

2. 모든 string은 push_back을 사용해 처리한다

 

3. 모든 함수에 { }을 꼭 사용하자


테스트 22 실패 처리된 코드

for (int i = 0; i < tmp.size(); i++)
        answer.push_back(m1[tmp[i].first] + "님이 " + tmp[i].second);

 

 

{ } 추가 후 성공

Comments