Patrick's Devlog

[BOJ/C++] 나는 친구가 적다(16171번) 본문

Study/Algorithms Practice

[BOJ/C++] 나는 친구가 적다(16171번)

Patrick_ 2022. 6. 15. 14:51

1. 문제 개요

https://www.acmicpc.net/problem/16171

 

16171번: 나는 친구가 적다 (Small)

첫 번째 줄에는 알파벳 소문자, 대문자, 숫자로 이루어진 문자열 S가 주어진다. (1 ≤ |S| ≤ 100) 두 번째 줄에는 성민이가 찾고자 하는 알파벳 소문자, 대문자로만 이루어진 키워드 문자열 K가 주

www.acmicpc.net

1-1. 설명

성민이가 듣는 과목의 교과서에는 알파벳 소문자와 대문자로만 이루어져 있다. 성민이가 교과서에서 찾고자하는 키워드 또한 알파벳 소문자와 대문자로만 이루어져 있다. 하지만, 결석한 날 수업 내용을 친구에게 빌려 필기를 하던 중 교과서에 숫자를 적어버린 것이다. 교과서에서 성민이가 찾고자하는 키워드의 존재 여부를 알려주자.

 

1-2. 제한사항

 - 첫번째 줄에는 알파벳 소문자, 대문자, 숫자로 이루어진 문자열 S가 주어짐

 - S 길이는 1 이상 100이하로 이루어짐

 - 두번째 줄에는 성민이가 찾고자하는 알파벳 소문자, 대문자로만 이루어진 문자열 K가 주어짐

 - K 길이는 1이상 100이하로 이루어짐

 - 입력으로 들어오는 K의 길이는 교과서 문자열 S보다 짧거나 같음

 - 첫번째 줄에 성민이가 찾고자하는 키워드가 문자열 내 존재시 1, 존재하지 않을 시 0을 출력


2. 구현

2-1. 풀이

S와 K를 입력받고 isdigit을 통해 숫자는 모두 지워버린다. find 키워드를 통해 K의 일부분이 존재하면 1, 존재하지 않으면 0으로 간주하여 출력한다. 

 

2-2. 코드

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main(void) {
	string S, K, result;
	cin >> S;
	cin >> K;

	for (char ch : S) {
		if (!isdigit(ch)) result += ch;
	}
	if (result.find(K) != string::npos) cout << 1 << endl;
	else cout << 0 << endl;
}

 

'Study > Algorithms Practice' 카테고리의 다른 글

[BOJ/C++] 카드2(2164번)  (0) 2022.06.23
[프로그래머스/C++] 스킬트리  (0) 2022.06.21
[BOJ/C++] 완전제곱수(1977번)  (2) 2022.05.18
[BOJ/C++] 오늘도 졌다(14582번)  (0) 2022.05.17
[BOJ/C++] 소수(2581번)  (0) 2022.05.13