※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 26041번 문제인 비슷한 전화번호 표시이다.
문제는 아래 링크를 확인하자.

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

 

26041번: 비슷한 전화번호 표시

n개의 전화번호가 공백으로 구분된 문자열 A가 주어진다. 문자열 A에는 중복된 전화번호가 존재할 수 있다. 추가로, 하나의 전화번호 B가 주어진다. 전화번호는 문자 ‘1’ ~ 문자 ‘9’로 이루어

www.acmicpc.net

A에 주어지는 번호들 중 접두사로 B를 포함하면서 B보다 긴 전화번호의 개수를 세는 문제이다.

 

while문과 cin을 이용해 A로 주어지는 번호의 개수를 몰라도 입력을 편하게 받을 수 있다. 이 때, 마지막으로 입력받은 문자열을 B로 취급하자.

 

또한, substr을 이용해 A의 접두사와 B의 비교를 간편하게 구현할 수 있다.

 

아래는 제출한 소스코드이다.

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

string s; int slen;
vector<string> vec;
int ans = 0;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	while (cin >> s) vec.emplace_back(s);
	vec.pop_back();

	slen = s.length();

	for (auto& cur : vec) {
		if (cur.length() > s.length() && cur.substr(0, slen) == s) ans++;
	}

	cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 11520 // C++] And Then There Was 5  (0) 2022.11.26
[BOJ 25758 // C++] 유전자 조합  (0) 2022.11.26
[BOJ 13225 // C++] Divisors  (0) 2022.11.25
[BOJ 25757 // C++] 임스와 함께하는 미니게임  (0) 2022.11.25
[BOJ 13222 // C++] Matches  (0) 2022.11.25

+ Recent posts