-
https://programmers.co.kr/learn/courses/30/lessons/64065
2019 카카오 인턴쉽 코딩테스트에 출제되었었던 튜플 문제이다.
위 링크를통하여 프로그래머스에서 풀어볼 수 있다.
아이디어
본인만 그런건지 모르겠는데 문제 이해하기가 정말 어려웠다. 문제 이해가 안되서 구글링해서 설명을 보고서야 이해를 했고, 풀이 자체는 어렵지 않았다. 숫자를 받아서 전부 unordered_map에 넣었고 중복은 카운트를 증가시켜서 가장 자주 나오는 숫자가 앞쪽으로 배치 되어야하기 때문에 정렬을 이용해서 튜플을 구해냈다.
#include <string> #include <vector> #include <unordered_map> #include <algorithm> using namespace std; bool cmp(pair<int, int>a, pair<int, int> b) { return a.first > b.first; } vector<int> solution(string s) { vector<int> answer; unordered_map<string, int>m; vector<pair<int, int>> temp; string nums = ""; for (auto num : s) { if (num >= '0' && num <= '9') { nums.push_back(num); continue; } if (nums.size() > 0) { m[nums]++; nums.clear(); } } for (auto nums : m) temp.push_back({ nums.second, stoi(nums.first) }); sort(temp.begin(), temp.end(), cmp); for (auto num : temp) answer.push_back(num.second); return answer; }
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Programers 주식가격 (0) 2022.07.26 Programers 배달 (0) 2022.07.26 2020 카카오 인턴쉽 코딩테스트 4번 경주로 건설 (0) 2022.06.01 2020 카카오 인턴쉽 코딩테스트 3번 보석 쇼핑 (0) 2022.06.01 2020 카카오 인턴쉽 코딩테스트 2번 수식 최대화 (0) 2022.06.01 댓글