-
[프로그래머스/위클리 챌린지] 4주차 (C++)알고리즘 문제풀이/프로그래머스 2021. 8. 30. 15:57
https://programmers.co.kr/learn/courses/30/lessons/84325
문자열 파싱, 정렬을 이용한 구현 문제
3주차는 도전중...
#include <string> #include <vector> #include <unordered_map> #include <sstream> #include <algorithm> using namespace std; int cmp(const pair<string, int> &a, const pair<string, int> &b) { if(a.second == b.second) return a.first < b.first; return a.second > b.second; } string solution(vector<string> table, vector<string> languages, vector<int> preference) { vector<pair<string, int> > v; for(auto t : table) { string s[6]; // 직업군, 5,4,3,2,1점 언어 stringstream ss(t); ss >> s[0] >> s[1] >> s[2] >> s[3] >> s[4] >> s[5]; // 파싱 unordered_map<string, int> um; for(int i = 1; i < 6; i++) { um[s[i]] = 6 - i; // 각 언어마다 점수 저장 } int sum = 0; for(int i = 0; i < preference.size(); i++) { sum += um[languages[i]] * preference[i]; // 언어 선호도 * 직업군 언어 점수 } v.push_back({ s[0], sum }); // 직업군, 언어 총합 저장 } sort(v.begin(), v.end(), cmp); return v[0].first; }
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/위클리 챌린지] 5주차 (C++) (0) 2021.09.07 [프로그래머스/Level 2] 거리두기 확인하기 (C++) (0) 2021.08.31 [프로그래머스/Level 4] 무지의 먹방 라이브 (0) 2021.08.21 [프로그래머스/위클리 챌린지] 2주차 (C++) (0) 2021.08.12 [프로그래머스/위클리 챌린지] 1주차 (C++) (0) 2021.08.12