728x90
 

코딩테스트 연습 - 오픈채팅방 | 프로그래머스

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. [닉네임]님이 들어왔습니다. 채팅방에서 누군가 나가면 다음 메시지가 출력된다. [닉네임]님이 나갔습니다. 채팅

www.welcomekakao.com

 

2019 카카오 신입 공채 1차 코딩 테스트 문제 해설

작년에 이어 올해도 블라인드 전형으로 카카오 개발 신입 공채가 시작되었습니다! 그 첫 번째 관문으로 1차 온라인 코딩 테스트가 지난 9월 15일(토) 오후 2시부터 7시까지 5시간 동안 치러졌는데요. 지원자분들 만큼이나 준비위원들도 테스트가 문제없이, 공정하게 치러질 수 있도록 많은 준비를 했고 두근 거리는 마음으로 끝까지 온라인 테스트를 모니터링했답니다. 문제는 작년과 비슷하게 구현 문제 위주로 쉬운 난이도에서 어려운 […]

tech.kakao.com

#include <string>
#include <vector>
#include <tuple>
#include <map>
using namespace std;

vector<string> solution(vector<string> record) {
    vector<string> answer;
    map<string, int> m;
    vector<string> ids;
    vector<string> nicknames;
    vector<pair<int, string>> ment;
    for (int i = 0; i < record.size(); i++) {
        if (record[i][0] == 'E') {
            int j = 6;
            while (record[i][j] != ' ') {
                j++;
            }
            string id = record[i].substr(6, j - 6);
            string nickname = record[i].substr(j + 1);
            //answer.push_back(nickname + "님이 들어왔습니다.");
            if (m.find(id) != m.end()) {
                nicknames[m[id]] = nickname;
            }
            else {
                ids.push_back(id);
                nicknames.push_back(nickname);
                m[id] = ids.size() - 1;
            }
            ment.push_back(make_pair(m[id], "님이 들어왔습니다."));
        }
        else if (record[i][0] == 'L') {
            string id = record[i].substr(6);
            ment.push_back(make_pair(m[id], "님이 나갔습니다."));
        }
        else if (record[i][0] == 'C') {
            int j = 7;
            while (record[i][j] != ' ') {
                j++;
            }
            string id = record[i].substr(7, j - 7);
            string nickname = record[i].substr(j + 1);
            nicknames[m[id]] = nickname;
        }
    }
    for (pair<int, string> t : ment) {
        string temp = nicknames[t.first] + t.second;
        answer.push_back(temp);
    }
    return answer;
}

 

728x90

'알고리즘 문제' 카테고리의 다른 글

[백준] 1120번 문자열  (0) 2020.02.09
[백준] 1547번 공  (0) 2020.02.09
[백준] 3613번 Java vs C++  (0) 2020.02.08
[백준] 10808번 알파벳 개수  (0) 2020.02.08
[백준] 11403번 경로 찾기  (0) 2020.02.07

+ Recent posts