반응형
    
    
    
  https://www.acmicpc.net/problem/12919
12919번: A와 B 2
수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈
www.acmicpc.net
전수조사 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
문자열 s, t를 입력받습니다.
📔 풀이과정
1. s에서 t로 만든다면 매 문자에 대해 2가지 경우의 수를 확인해야 하므로 2^50시간복잡도를 가지게 됩니다. 이는 시간초과로 틀리게 됩니다. 2. 반대로 t에서 s를 만드는 생각을 해야 합니다. 때문에 명령어는 다음처럼 바뀌게 됩니다. 2-1. 문자열 뒤에 A를 뺸다. 2-2. 문자열을 뒤집고 B를 뺸다.3. dfs 함수를 수행합니다.
📔 정답출력
dfs의 결과를 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
string s, t;
int ans = 0;
int dfs(string tmp){
    if(tmp == s) return 1;
    if(s.size() > tmp.size()) return 0;
    int ans = 0;
    if(tmp[tmp.size() - 1] == 'A'){
        tmp.pop_back();
        ans = max(ans,dfs(tmp));
        tmp.push_back('A');
    }
    if(tmp[0] == 'B'){
        reverse(tmp.begin(), tmp.end());
        tmp.pop_back();
        ans = max(ans, dfs(tmp));
    }
    return ans;
}
int main(){
    cin >> s >> t;
    cout << dfs(t);
}*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Brute Force' 카테고리의 다른 글
| (C++) - 백준(BOJ) 1254 : 팰린드롬 만들기 (0) | 2022.06.30 | 
|---|---|
| (C++) - 프로그래머스(위클리 챌린지) : 5주차_모음사전 (0) | 2022.06.30 | 
| (C++) - 백준(BOJ) 22251 : 빌런 호석 (0) | 2022.06.30 | 
| (C++) - 백준(BOJ) 9081 : 단어 맞추기 (0) | 2022.06.28 | 
| (C++) - 백준(BOJ) 15658 : 연산자 끼워넣기 (2) (0) | 2022.06.25 |