알고리즘 · 코딩

[SWEA 4261] 빠른 휴대전화 키패드

G A 2020. 6. 4. 15:56

문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWLL7kaaAPsDFAUW

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


C++ 풀이

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

int main() {
	string S, temp, answer;
	vector <char> keypad = { 'Z', 'c', 'f', 'i', 'l', 'o', 's', 'v', 'z' };
	int T, N, sum, check;
	cin >> T;
	for (int i = 1; i <= T; i++) {
		sum = 0;
		cin >> S >> N;
		for (int j = 0; j < N; j++) {
			check = 0;
			cin >> temp;
			if (temp.length() != S.length())
				continue;
			for (int k = 0; k < temp.length(); k++) {
				if (((int)temp[k] > (int)keypad[S[k] - 50]) && (int)temp[k] <= (int)keypad[S[k] - 49])
					check++;
			}
			if (check == S.length())
				sum++;
		}
		answer += "#" + to_string(i) + " " + to_string(sum) + "\n";
	}
	cout << answer;
	return 0;
}

문자를 int형으로 변환하여 값을 비교하여 풀었다.

 

 

 

반응형