반응형
https://www.acmicpc.net/problem/11117
문제 지문해석이 헷갈렸던 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
가장 처음에 입력받는 것이 테스트 케이스입니다. 매 테스트 케이스마다 문자열 사전을 입력받습니다. 이후 sister가 배열하길 원하는 문자열의 개수가 주어지고 그 수 만큼 단어가 주어지는 형태입니다. 입력만 잘 해주신다면 이 후 구현은 문제없습니다.
📔 풀이과정
1. 매 테스트케이스마다 alpha배열을 0으로 초기화해줍니다.
2. 이 후 입력받은 단어사전을 한 문자씩 확인하며 알파벳이 몇 개씩 나왔는지 alpha배열에 저장해줍니다.
3. 그 후 배열하길 원하는 문자열들의 문자들을 하나씩 확인하며 해당하는 알파벳이 alpha배열에 존재하는지 확인합니다. 없다면 flag를 세워줍니다.
📔 정답출력
1. 가지고 있는 문자가 아니거나 더 이상 배열할 수 없을 때(f == 0) NO
2. 모두 배열을 완료 했을 경우에는 YES를 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int cookieNum, testCase, alpha[26], alphaCopy[26];
string cookieWord, let;
int main(){
cin >> testCase;
while(testCase--){
memset(alpha,0,sizeof(alpha));
cin >> cookieWord;
for(int i = 0; i < cookieWord.size(); i++) alpha[cookieWord[i]-'A']++;
cin >> cookieNum;
for(int i = 0; i < cookieNum; i++){
for(int i = 0; i < 26; i++) alphaCopy[i] = alpha[i];
cin >> let;
int f = 0;
for(int j = 0; j < let.size(); j++){
if(!alphaCopy[let[j]-'A']) f = 1;
else alphaCopy[let[j]-'A']--;
}
if(!f) cout << "YES\n";
else cout << "NO\n";
}
}
}
'Algorithm > String' 카테고리의 다른 글
(C++) - 백준(BOJ) 12517번 : Centauri Prime (Small1) (0) | 2021.08.04 |
---|---|
(C++) - 백준(BOJ) 8545번 : Zadanie próbne (0) | 2021.08.03 |
(C++) - 백준(BOJ) 4889번 : 안정적인 문자열 (2) | 2021.08.01 |
(Python) - 백준(BOJ) 1340번 : 연도 진행바 (0) | 2021.07.27 |
(C++) - 백준(BOJ) 21734번 : SMUPC의 등장 (0) | 2021.07.25 |