본문 바로가기

Algorithm

sw academy 4261. 빠른 휴대전화 키패드

반응형

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWLL7kaaAPsDFAUW&categoryId=AWLL7kaaAPsDFAUW&categoryType=CODE

 

SW Expert Academy

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

swexpertacademy.com

 

c++ string find 함수. 부분문자열 찾아서 그 인덱스 반환(true,false x)

없는 경우는 반환 값이 string::npos와 일치. 

이 문제에서 문자열 최대길이는 4이므로 KMP 안쓰고 find()로 시간초과 없이 가능

만약 string 길이가 10000000000000 이런 식이면 닥 KMP ㄱㄱ

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



string num, str;
string temp[10] = { "","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz" };
int N;

vector<char> vec;


bool check()
{
	for (int i = 0; i < num.size(); i++)
	{
		if (temp[num[i] - '0'].find(str[i]) == string::npos)
		{
			return false;
		}
	}
	return true;
}


int main(int argc, char** argv)
{
	int test_case;
	int T;


	

	cin >> T;
	
	for (test_case = 1; test_case <= T; ++test_case)
	{
		
		cin >> num >> N;
		int count = 0;
		for (int i = 0; i < N; i++)
		{
			cin >> str;
			if (check())
			{
				count++;
			}

		}
		cout <<"#"<<test_case<<" "<< count << endl;
		
	}

	return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
반응형

'Algorithm' 카테고리의 다른 글

백준 3019번 테트리스  (0) 2020.07.21
백준 17071번 숨바꼭질 5  (0) 2020.07.21
백준 1525번 퍼즐  (0) 2020.07.19
백준 7785번 회사에 있는 사람  (0) 2020.07.19
백준 9935번 문자열 폭발  (0) 2020.07.18