코딩공부/프로그래머스

[프로그래머스]Lv.1 대충 만든 자판 C++

usingsystem 2023. 8. 7. 15:38
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/160586?language=cpp 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

소스코드

#include <iostream>
#include <vector>
using namespace std;

int findClick(vector<string> keymap, char c) {

	int min = 9999;
	for (int i = 0; i < keymap.size(); i++)
	{
		auto idx = keymap[i].find(c);
		if (idx != string::npos)
		{
			if (min > idx)
				min = idx;
		}
	}

	if (min == 9999)
		return -1;
	else
		return min + 1;
}

vector<int> solution(vector<string> keymap, vector<string> targets) {
	vector<int> answer;


	for (int i = 0; i < targets.size(); i++)
	{
		answer.push_back(0);
		int num = 0;
		for (int j = 0; j < targets[i].size(); j++)
		{
			num = findClick(keymap, targets[i][j]);

			if (num == -1)
			{
				answer[i] = -1;
				break;
			}

			answer[i] += num;
		}
	}

	return answer;
}


int main()
{
	auto result = solution(vector<string> { "ABACD", "BCEFD" }, vector<string> { "ABCD", "AABB" });
	//std:: cout << result << endl;

	return 0;
}
728x90