알고리즘 교육/5. 문자열
문자열 포함관계 조사
곰제비
2022. 7. 15. 23:44
문제
문자열 A와 B가 주어질 때, 문자열 B가 문자열 A에 포함되어 있는지를 조사하는 프로그램을 작성하시오. 단, 문자열 A와 B에는 알파벳으로만 이루어져 있으며, 공백은 포함되지 않는다고 가정한다.
입력
첫 번째 줄에 문자열 A, 두 번째줄에 문자열 B가 주어진다. 각각의 길이는 1,000을 넘지 않는다. 두 문자열은 모두 소문자 알파벳으로만 구성되어있다.
출력
문자열 B가 문자열 A에 포함되면 YES, 아니면 NO를 출력한다.
예제 입력
watermelon
melon
예제 출력
YES
전체 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include <iostream> using namespace std; int result[30]; int n; int cnt; void getResult(int mySum, int idx){ // 현재까지 구한 합이 mySum // 그리고 지금, idx번째 숫자를 결정할 차례. 즉, result[idx] if(mySum == n){ cout << result[0]; for(int i=1; i<idx; i++) cout << '+' << result[i]; cout << '\n'; cnt++; } else{ int myNumber; if(idx == 0) myNumber = n-1; else myNumber = n - mySum; for(int i=myNumber; i>=1; i--){ result[idx] = i; if(idx>0 && result[idx-1] < result[idx]) continue; getResult(mySum+i, idx+1); } } } int main() { cin >> n; getResult(0,0); cout << cnt; return 0; } | cs |