https://school.programmers.co.kr/learn/courses/30/lessons/42888?language=cpp
대략 요약
#전체 코드
#include <string>
#include <vector>
#include <sstream>
#include <map>
#include <iostream>
using namespace std;
vector<string> solution(vector<string> record) {
vector<string> answer;
map<string,string> m;
vector<vector<string>> seq;
//seq 실행 목록 저장
for(auto r: record){
stringstream ss;
ss.str(r);
string enter,id,name;
ss >> enter >> id >> name;
vector<string> sol;
sol.push_back(enter);
sol.push_back(id);
sol.push_back(name);
seq.push_back(sol);
if(enter == "Enter" || enter == "Change"){
m[id] = name;
}
sol.clear();
}
//출력
for(int i=0; i<seq.size(); i++){
if(seq[i][0] == "Enter"){
answer.push_back(m[seq[i][1]] + "님이 들어왔습니다.");
}
else if(seq[i][0] == "Leave"){
answer.push_back(m[seq[i][1]] + "님이 나갔습니다.");
}
}
return answer;
}
#도움을 받은 곳
#고찰
map 을 사용해서 id 와 이름을 매치시켜주고
입력에 따라서 한차례 차례대로 정리하고
정답에 id와 매치한값으로 정리해서 넣어주면 된다..
map STL 사용과 sstream 을 문자열 처리를 위해 사용하면 편하게 풀 수 있다.
'[프로그래머스] > lv.2' 카테고리의 다른 글
[프로그래머스] 수식 최대화 [C++][lv.2] 2020 카카오 인턴십 (0) | 2024.07.04 |
---|---|
[프로그래머스] 가장 큰 수 [C++][lv.2] (0) | 2024.04.28 |