[백준] #9177 단어 섞기

kkily·2022년 4월 1일
0

[알고리즘]

목록 보기
88/102

감이 안와서 구글링을 해 다른 분의 코드를 참고했다 .. dp는 어렵다 연습이 진짜 필요할 것 같다😥

#include<iostream>
#include<algorithm>
#include<cstring>

using namespace std;
int dp[201][201];
string a,b,c;
int func(int n,int m){
    if(n+m==c.size()){
        return 1;
    }
    int& ret= dp[n][m];
    if(ret!=-1) return ret;
    if(n<a.size() && c[n+m]==a[n] && func(n+1,m)) 
        return ret=1;
    if(m<b.size() && c[n+m]==b[m] && func(n,m+1)) 
        return ret=1;
    return ret=0;
}

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

    int q;
    cin>>q;

    for(int i=1;i<=q;i++){
        cin>>a>>b>>c;
        memset(dp,-1,sizeof(dp));
        string ret = func(0,0) ? "yes":"no";
        cout << "Data set " << i << ": " << ret << '\n';
    }


}



문제

profile
낄리의 개발 블로그╰(*°▽°*)╯

0개의 댓글

관련 채용 정보