12871번 : 무한 문자열
문제)
문자열 s가 있을 때, f(s)는 s를 무한번 붙인 문자열로 정의한다. 예를 들어, s = "abc" 인 경우에 f(s) = "abcabcabcabc..."가 된다.
다른 문자열 s와 t가 있을 때, f(s)와 f(t)가 같은 문자열인 경우가 있다. 예를 들어서, s = "abc", t = "abcabc"인 경우에 f(s)와 f(t)는 같은 문자열을 만든다.
s와 t가 주어졌을 때, f(s)와 f(t)가 같은 문자열을 만드는지 아닌지 구하는 프로그램을 작성하시오.
입력 :
첫째 줄에 s, 둘째 줄에 t가 주어진다. 두 문자열 s와 t의 길이는 50보다 작거나 같은 자연수이고, 알파벳 소문자로만 이루어져 있다.
출력 :
첫째 줄에 f(s)와 f(t)가 같으면 1을, 다르면 0을 출력한다.
풀이)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s, t;
cin >> s >> t;
string t1 = "";
string t2 = "";
// 두 글자의 최소공배수로 글자를 합쳐본다
for (int i = 0; i < t.length(); i++) t1 += s;
for (int i = 0; i < s.length(); i++) t2 += t;
if (t1 == t2) cout << 1;
else cout << 0;
return 0;
}
|
cs |
출처 : https://www.acmicpc.net/problem/12871
12871번: 무한 문자열
첫째 줄에 s, 둘째 줄에 t가 주어진다. 두 문자열 s와 t의 길이는 50보다 작거나 같은 자연수이고, 알파벳 소문자로만 이루어져 있다.
www.acmicpc.net
'Develop > 백준 (Cpp)' 카테고리의 다른 글
[백준] 17836번 : 공주님을 구해라! (C++) (0) | 2023.08.31 |
---|---|
[백준] 18222번 : 투에-모스 문자열 (C++) (0) | 2023.08.31 |
[백준] 2163번 : 초콜릿 자르기 (C++) (0) | 2023.08.31 |
[백준] 7662번 : 이중 우선순위 큐 (C++) (0) | 2023.08.29 |
[백준] 16928번 : 뱀과 사다리 게임 (C++) (0) | 2023.08.29 |