반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 처우산정
- BFS
- compose
- 파라메트릭
- 기술면접
- upper_bound
- softeer
- 소프티어
- 13908
- 백준
- dfs
- 오퍼레터
- BOJ
- 물채우기
- 퇴사통보
- 매개변수탐색
- 이분탐색
- msSQL
- Kafka
- 연결요소
- OFFSET
- boj #19237 #어른 상어
- 처우협의
- incr
- 경력
- Docker
- @P0
- 6987
- 성적평가
- 백트래킹
Archives
- Today
- Total
기술 블로그
오픈채팅방 본문
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42888
2017 카카오 블라인드 코딩 테스트 문제이다.
유저 아이디가
uid123
uid1234
위의 경우만 조심하면 된다.
나는 처음에 앞에서 더해 나가면서, map에 있으면 그 즉시 문자열끼리 합쳤는데
uid1234님이 나갔습니다.
uid123 + 4님이 나갔습니다.
와 같은 경우가 생길 수 있다.
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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | #include <bits/stdc++.h> using namespace std; map<string, string> m; vector<string> solution(vector<string> record) { vector<string> answer, temp; for (auto i : record) { string uid = "", name = ""; bool go = false; if (i.at(0) == 'E') { string Enter = ""; int space = i.find(' ') + 1; for (int j = space; j < i.length(); j++) { if (i.at(j) == ' ') { go = true; continue; } if(!go) uid += i.at(j); else name += i.at(j); } m[uid] = name; Enter = uid + " Enter"; temp.push_back(Enter); } else if (i.at(0) == 'L') { string Leave = ""; int space = i.find(' ') + 1; for (int j = space; j < i.length(); j++) uid += i.at(j); Leave = uid + " Leave"; temp.push_back(Leave); } else if (i.at(0) == 'C') { int space = i.find(' ') + 1; for (int j = space; j < i.length(); j++) { if (i.at(j) == ' ') { go = true; continue; } if (!go) uid += i.at(j); else name += i.at(j); } m[uid] = name; } } for (auto i : temp) { string uid_s = "", rmd = ""; bool us = true; for (auto j : i) { if (j == ' ') { us = false; continue; } if (us) uid_s += j; else rmd += j; } if (rmd == "Enter") rmd = "님이 들어왔습니다."; else if (rmd == "Leave") rmd = "님이 나갔습니다."; answer.push_back(m[uid_s] + rmd); } return answer; } int main(void) { vector<string> vs = { "Enter uid1234 Muzi", "Enter uid4567 Prodo", "Leave uid1234", "Enter uid1234 Prodo", "Change uid4567 Ryan" }; /* Prodo(uid1234)님이 들어왔습니다. Ryan(udi4567)님이 들어왔습니다. Prodo(uid1234)님이 나갔습니다. Prodo(uid1234)님이 들어왔습니다. */ vector<string> ans = solution(vs); for (auto i : ans) cout << i << '\n'; return 0; } | cs |
728x90
반응형