어흥

[프로그래머스] 오픈채팅방 (C++) 본문

알고리즘/프로그래머스

[프로그래머스] 오픈채팅방 (C++)

라이언납시오 2021. 9. 28. 18:29
728x90
반응형

문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42888

 

코딩테스트 연습 - 오픈채팅방

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오

programmers.co.kr

 

1. 주의할 점

- 입력에 대한 처리를 잘 수행한다

- Map을 이용한다

 

2. 구현

- 입장/퇴장에 대한 내용을 Word 벡터에 저장한다

- 유저아이디를 Ids 벡터에 저장한다

- Map<String, String> 에 <유저아이디,닉네임> 형태로 저장한다

- Ids 벡터와 Map 그리고 Word 벡터를 잘 이용하여 정답을 반환한다

 

#include <string>
#include <vector>
#include <map>
#include <iostream>
#include <sstream>
using namespace std;
map<string, string> m;
vector<string> word,ids;

vector<string> solution(vector<string> record) {
    vector<string> answer;
    string str;
    for(int i=0;i<record.size();i++){
        istringstream ss(record[i]);
        string order,uniqueId,id;
        ss >>order>>uniqueId>>id;
        
        if(order=="Enter") word.push_back("님이 들어왔습니다.");
        else if(order=="Leave")   word.push_back("님이 나갔습니다.");

        if(order!="Change")  ids.push_back(uniqueId);
        
        if(order!="Leave")  m[uniqueId] = id;
        
    }
    for(int i=0;i<ids.size();i++)
        answer.push_back(m[ids[i]]+word[i]);
    return answer;
}
728x90
반응형
Comments