본문 바로가기
알고리즘 교육/5. 문자열

문자열 포함관계 조사

by 곰제비 2022. 7. 15.
문제

문자열 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

'알고리즘 교육 > 5. 문자열' 카테고리의 다른 글

문자열 압축  (0) 2022.07.15
팰린드롬 조사  (0) 2022.07.15
문자열 뒤집기  (0) 2022.07.15
과제물 망치기  (0) 2022.07.15
대소문자 변환  (0) 2022.07.15