프로그래머스 문제풀이/LEVEL 1
[C++] 프로그래머스 문제풀이 LEVEL 1 대충 만든 자판
코딩준우
2023. 7. 3. 01:06
https://school.programmers.co.kr/learn/courses/30/lessons/160586
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include <bits/stdc++.h>
using namespace std;
int solve(std::string & target, std::unordered_map<char, int> & mapping){
int res = 0;
for (char ch : target){
if (mapping.find(ch) == mapping.end()) return -1;
res += mapping[ch];
}
return res;
}
vector<int> solution(vector<string> keymap, vector<string> targets) {
vector<int> answer;
std::unordered_map<char, int> mapping;
for (auto key : keymap){
for (int i = 0; i < key.size(); ++i){
if (mapping.find(key[i]) == mapping.end()){
mapping[key[i]] = i + 1;
}
else {
mapping[key[i]] = std::min(i + 1, mapping[key[i]]);
}
}
}
for (std::string target : targets){
answer.push_back(solve(target, mapping));
}
return answer;
}