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

 

이번에 볼 문제는 백준 10190번 문제인 Acronyms이다.
문제는 아래 링크를 확인하자.

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

 

10190번: Acronyms

There are many acronyms that have the same letters with different meanings. For example, ISS could mean International Space Station, In School Suspension, Interstate Sporadic Squabbles, but it could not be Institutional Saliva Tester (IST, not ISS) nor cou

www.acmicpc.net

각 두문자어별로 주어진 문자열들이 역두문자어가 될 수 있는지를 판단하는 문제이다.

 

두문자어의 글자 수와 역두문자어의 구성하는 단어의 개수가 서로 같은지, 같다면 역두문자어의 앞글자를 따서 만든 두문자어가 주어진 두문자어와 동일한지를 판단해 문제를 해결하자.

 

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

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

int T;
string S; int TT, Slen;
string s, trash; int slen;

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

	cin >> T;
	while (T--) {
		cin >> S >> TT;
		Slen = S.length();
		getline(cin, trash);

		cout << S << '\n';

		while (TT--) {
			vector<string> vec;
			getline(cin, s); s += " ";
			slen = s.length();
			int L = 0;
			for (int R = 0; R < slen; R++) {
				if (s[R] == ' ') {
					vec.emplace_back(s.substr(L, R - L));
					L = R + 1;
				}
			}
			if (vec.size() == Slen) {
				bool chk = 1;
				for (int i = 0; i < Slen; i++) {
					if (S[i] != vec[i][0]) chk = 0;
				}

				if (chk) {
					for (auto& ss : vec) cout << ss << ' ';
					cout << '\n';
				}
			}
		}
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 15179 // C++] Golf Croquet  (0) 2022.12.22
[BOJ 5292 // C++] Counting Swann's Coins  (0) 2022.12.22
[BOJ 6843 // C++] Anagram Checker  (0) 2022.12.22
[BOJ 5344 // C++] GCD  (0) 2022.12.22
[BOJ 26590 // C++] Word Mix  (0) 2022.12.22

+ Recent posts