반응형
https://programmers.co.kr/learn/courses/30/lessons/42888
풀이
ID를 key로, 닉네임을 value로 하여 Map을 사용하여 문제를 해결한다.
map<string, string> m1 를 생성하여 사용하였다.
이 문제의 풀이를 위해서 record를 두 번 읽는다. (한 번 읽어서 가능한 방법은 내 머리론 모르겠당ㅠ)
- Enter 또는 Change의 command의 경우에 ID와 닉네임 map의 값을 수정해 주기 위해
- ID와 최종 닉네임을 매칭해서 answer 벡터를 생성하기 위해
#include <string>
#include <vector>
#include <map>
#include <cstdio>
using namespace std;
vector<string> solution(vector<string> record) {
vector<string> answer;
map<string, string> m1;
char cmd[10];
char id[11];
char name[11];
for(int i=0; i<record.size(); i++){
if (record[i][0] == 'E'){
sscanf(record[i].c_str(), "%s %s %s", cmd, id, name);
m1[id] = name;
}
else if (record[i][0] == 'C'){
sscanf(record[i].c_str(), "%s %s %s", cmd, id, name);
m1[id] = name;
}
else if (record[i][0] == 'L'){
sscanf(record[i].c_str(), "%s %s", cmd, id);
}
}
for(int i=0; i<record.size(); i++){
if (record[i][0] == 'E'){
sscanf(record[i].c_str(), "%s %s %s", cmd, id, name);
answer.push_back(m1[id]+"님이 들어왔습니다.");
}
else if (record[i][0] == 'L'){
sscanf(record[i].c_str(), "%s %s", cmd, id);
answer.push_back(m1[id]+"님이 나갔습니다.");
}
}
return answer;
}
728x90
반응형
'알고리즘 > PS - 프로그래머스' 카테고리의 다른 글
[프로그래머스 - C++] 단어 변환 (0) | 2021.07.10 |
---|---|
[프로그래머스 - C++] 불량 사용자 (0) | 2021.07.09 |
[프로그래머스 - C++] 괄호 변환 (0) | 2021.07.09 |
[프로그래머스 - C++] 더 맵게 (0) | 2021.07.09 |
[프로그래머스 - C++] 튜플 (0) | 2021.07.09 |