2019 카카오 채용 코딩 테스트 문제입니다.
문제 확인
스트링, 쿼리 처리 문제입니다.
풀이
Enter, Leave만 쿼리 (행동 : 아이디)로 저장한 다음 Enter, Change에 대하여 map 컨테이너에 (아이디 : 닉네임) 저장하고 관리합니다.
모든 레코드가 처리되면 쿼리를 읽으면서 처리합니다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#include <string>
#include <vector>
#include <map>
using namespace std;
typedef struct query {
char op;
string id;
query(char op, string &id) :op(op), id(id) {};
}query;
vector<string> solution(vector<string> record) {
int n = record.size();
vector<string> answer;
vector<query> qry;//쿼리 행동, 아이디
map<string, string> user;//유저 아이디, 닉네임
for (auto &s : record) {//레코드 처리
vector<string> t{};
for (int i = 0, prev = 0; i < s.size();) {
while (i < s.size() && s[i] != ' ')++i;
t.push_back(s.substr(prev, i - prev));
prev = ++i;
}
if (t[0][0] == 'E') {//enter : 유저 추가, 쿼리 추가
qry.emplace_back(0, t[1]);
user[t[1]] = t[2];
}
else if (t[0][0] == 'C') {//change : 유저의 닉네임 변경
user[t[1]] = t[2];
}
else {//leave : 쿼리
qry.emplace_back(1, t[1]);
}
}
for (auto &q : qry) {//쿼리 처리
if (q.op) {
answer.push_back(user[q.id] + "님이 나갔습니다.");
}
else {
answer.push_back(user[q.id] + "님이 들어왔습니다.");
}
}
return answer;
}
|
cs |
정확성 테스트
테스트 1 〉 | 통과 (0.03ms, 3.94MB) |
테스트 2 〉 | 통과 (0.03ms, 3.94MB) |
테스트 3 〉 | 통과 (0.05ms, 3.93MB) |
테스트 4 〉 | 통과 (0.06ms, 3.95MB) |
테스트 5 〉 | 통과 (0.59ms, 3.97MB) |
테스트 6 〉 | 통과 (0.68ms, 3.93MB) |
테스트 7 〉 | 통과 (0.54ms, 3.83MB) |
테스트 8 〉 | 통과 (0.70ms, 3.93MB) |
테스트 9 〉 | 통과 (1.06ms, 3.94MB) |
테스트 10 〉 | 통과 (0.73ms, 3.92MB) |
테스트 11 〉 | 통과 (0.51ms, 3.95MB) |
테스트 12 〉 | 통과 (0.53ms, 3.96MB) |
테스트 13 〉 | 통과 (0.72ms, 3.96MB) |
테스트 14 〉 | 통과 (1.03ms, 4.11MB) |
테스트 15 〉 | 통과 (0.02ms, 3.95MB) |
테스트 16 〉 | 통과 (0.03ms, 3.95MB) |
테스트 17 〉 | 통과 (0.10ms, 3.77MB) |
테스트 18 〉 | 통과 (0.08ms, 3.92MB) |
테스트 19 〉 | 통과 (0.79ms, 3.97MB) |
테스트 20 〉 | 통과 (0.54ms, 3.94MB) |
테스트 21 〉 | 통과 (0.52ms, 3.98MB) |
테스트 22 〉 | 통과 (0.55ms, 3.95MB) |
테스트 23 〉 | 통과 (0.79ms, 3.95MB) |
테스트 24 〉 | 통과 (0.74ms, 3.94MB) |
테스트 25 〉 | 통과 (102.58ms, 41.7MB) |
테스트 26 〉 | 통과 (131.52ms, 40.1MB) |
테스트 27 〉 | 통과 (146.39ms, 41.3MB) |
테스트 28 〉 | 통과 (168.39ms, 46.4MB) |
테스트 29 〉 | 통과 (173.60ms, 46.4MB) |
테스트 30 〉 | 통과 (105.67ms, 39.4MB) |
테스트 31 〉 | 통과 (169.82ms, 44MB) |
테스트 32 〉 | 통과 (116.66ms, 41.6MB) |
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
반응형
'알고리즘 문제 > [프로그래머스]' 카테고리의 다른 글
[프로그래머스] 후보키 (0) | 2021.03.19 |
---|---|
[프로그래머스] 실패율 (0) | 2021.03.19 |
[프로그래머스] 가사 검색 (0) | 2021.03.18 |
[프로그래머스] 블록 이동하기 (0) | 2021.03.18 |
[프로그래머스] 외벽 점검 (0) | 2021.03.18 |