본문 바로가기

알고리즘 · 코딩

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

문제 링크

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형으로 변환하여 값을 비교하여 풀었다.

 

 

 

반응형

'알고리즘 · 코딩' 카테고리의 다른 글

[SWEA 6730] 장애물 경주 난이도  (0) 2020.06.08
[SWEA 4751] 다솔이의 다이아몬드 장식  (0) 2020.06.05
[SWEA 8658] Summation  (0) 2020.06.03
[SWEA 8821] 적고 지우기  (0) 2020.06.02
[SWEA 1861] 정사각형 방  (0) 2020.05.27