[프로그래머스][Level2] 오픈채팅방 c++

2022. 10. 21. 13:12·🍞 Algorithm/Programmers
반응형
https://programmers.co.kr/learn/courses/30/lessons/42888 
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이 과정

map을 활용한다면 쉽게 풀 수 있는 문제이다.  
record가 문자열로 들어왔기 때문에 편리하게 사용하기 위해 reco라는 이중벡터에 넣어줬다.

map은 이미 들어온 key값이 있으면 value 예전 값이 사라지고, 업데이트 되는 식이기  
때문에 Enter일때나 Chnage일 때 닉네임을 생성하거나, 업데이트 해주면 된다.

결과는 유저 아이디인 key값을 넣으면 업데이트 된 닉네임 value값이 나오게 되며  
Enter, Leave일 때에 따라 다르게 문자열을 생성하면 된다.

 

#include <string>
#include <vector>
#include <map>

using namespace std;

vector<string> solution(vector<string> record) {
    vector<string> answer;

    vector<vector<string>> reco;
    for(int i = 0; i < record.size(); i++){
        vector<string> temp;
        string str = "";
        for(int j = 0; j < record[i].size(); j++){
            if(record[i][j] == ' '){
                temp.push_back(str);
                str = "";
            }
            else str += record[i][j];
        }
        if(str != "") temp.push_back(str);
        reco.push_back(temp);
    }

    map<string, string> m; // uid1234 Muzi
    for(int i = 0; i < reco.size(); i++){
        if(reco[i][0] == "Enter" || reco[i][0] == "Change"){
            m[reco[i][1]] = reco[i][2];
        }
    }
    for(int i = 0; i < reco.size(); i++){
        string str = "";
        if(reco[i][0] == "Enter"){
            str += m[reco[i][1]];
            str += "님이 들어왔습니다.";
        }
        else if(reco[i][0] == "Leave"){
            str += m[reco[i][1]];
            str += "님이 나갔습니다.";
        }
        if(str != "") answer.push_back(str);
    }
    return answer;
}
반응형
저작자표시 (새창열림)

'🍞 Algorithm > Programmers' 카테고리의 다른 글

[프로그래머스][Level2] 줄 서는 방법 c++  (0) 2022.10.21
[프로그래머스][Level2] 이진 변환 반복하기 c++  (0) 2022.10.21
[프로그래머스][Level2] 영어 끝말잇기 c++  (0) 2022.10.21
[프로그래머스][Level2] 수식 최대화 c++  (0) 2022.10.21
[프로그래머스][Level2] 배달 c++  (0) 2022.10.21
'🍞 Algorithm/Programmers' 카테고리의 다른 글
  • [프로그래머스][Level2] 줄 서는 방법 c++
  • [프로그래머스][Level2] 이진 변환 반복하기 c++
  • [프로그래머스][Level2] 영어 끝말잇기 c++
  • [프로그래머스][Level2] 수식 최대화 c++
박빵이
박빵이
칭찬은 박빵도 춤추게 한다
  • 박빵이
    기억보다 기록
    박빵이
  • 전체
    오늘
    어제
    • 분류 전체보기 (336)
      • 🍞 AI (1)
      • 🍞 Cloud·Infra (1)
        • AWS SAA (1)
      • 🍞 FrontEnd (89)
        • HTML · CSS (4)
        • JavaScript (16)
        • TypeScript (3)
        • React (45)
        • Next.js (1)
        • Android (15)
      • 🍞 BackEnd (4)
        • FastAPI (1)
        • Java (15)
        • Node.js (6)
        • SpringBoot (1)
      • 🍞 Algorithm (147)
        • C++ (4)
        • Baekjoon (41)
        • Programmers (97)
      • 🍞 Computer Science (18)
        • 운영체제 (1)
        • 네트워크 (6)
        • 데이터 통신 (6)
        • 데이터베이스 (1)
      • 🍞 대외활동 & 부트캠프 (42)
        • 삼성 청년 SW 아카데미 (1)
        • LG유플러스 유레카 (0)
        • 한국대학생IT경영학회 (1)
        • IT연합동아리 UMC (17)
        • IT연합동아리 피로그래밍 (3)
        • 길벗 블로깅 멘토 (18)
        • 개발 컨퍼런스 (2)
      • 🍞 개발 협업 & 생산성 (2)
  • 블로그 메뉴

    • 글쓰기
    • Admin
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    C++
    길벗 블로깅 멘토
    level2
    코딩자율학습
    react
    프로그래머스
    level1
    알고리즘
    umc
    백준
    JavaScript
    Android
    길벗 블로깅 멘토링
    코틀린
    Front
    안드로이드
    Java
    위상정렬
    플로이드 와샬
    유니온파인드
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.6
박빵이
[프로그래머스][Level2] 오픈채팅방 c++
상단으로

티스토리툴바