-
[프로그래머스/위클리 챌린지] 4주차 (C++)알고리즘 문제풀이/프로그래머스 2021. 8. 30. 15:57
https://programmers.co.kr/learn/courses/30/lessons/84325
코딩테스트 연습 - 4주차
개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부
programmers.co.kr
문자열 파싱, 정렬을 이용한 구현 문제
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