반응형
https://www.acmicpc.net/problem/8892
모든 경우의 수를 탐색하는 brute force문제였습니다.
📕 풀이방법
📔 입력 및 초기화
test case t, 단어의 개수 k, 단어들을 저장할 vector words를 선언한 후 적절히 입력받습니다.
📔 풀이과정
words의 모든 두 단어를 확인해 합쳐본 뒤 팰린드롬인지 확인해줍니다.
1. 두 단어는 각각 words[i] + words[j] 또는 words[j] + words[i]식으로 두 가지의 합치는 방법이 있습니다.
2. 합쳤을 때 팰린드롬이라면 해당 단어를 ans에 저장해줍니다.
📔 정답출력
ans를 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int t, k;
string ans;
vector <string> words;
bool isPalindrome(string mergedWord){
int sz = mergedWord.size();
for(int i = 0; i < sz / 2; i++)
if(mergedWord[i] != mergedWord[sz - i - 1])
return false;
return true;
}
int main(){
cin >> t;
while(t--){
cin >> k;
ans = "0";
words.resize(k);
for(int i = 0; i < k; i++) cin >> words[i];
for(int i = 0; i < k; i++){
for(int j = i+1; j < k; j++){
string mergedWord = words[i] + words[j];
string mergedWord2 = words[j] + words[i];
if(isPalindrome(mergedWord)) ans = mergedWord;
if(isPalindrome(mergedWord2)) ans = mergedWord2;
}
}
cout << ans << '\n';
}
}
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 14912 : 숫자 빈도수 (0) | 2022.04.20 |
---|---|
(C++) - 백준(BOJ) 15489 : 파스칼 삼각형 (1) | 2022.04.18 |
(C++) - 백준(BOJ) 24039 : 2021은 무엇이 특별할까? (0) | 2022.04.14 |
(C++) - 백준(BOJ) 11068 : 회문인 수 (0) | 2022.04.13 |
(C++) - 백준(BOJ) 1025 : 제곱수 찾기 (4) | 2022.04.05 |