※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 11008번 문제인 복붙의 달인이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/11008
문자열을 앞에서부터 읽으면서 (1)가능하다면 문자열을 복붙해넣고 (2)그 외의 경우 문자 하나를 입력하는 것을 시뮬레이션하는 것으로 답을 구하자.
단순히 복붙가능한 문자열이 substring으로 몇 개 있는지 세어 수식을 세워서 풀기는 어렵다. "ababababa"를 입력하고자 할 때 복붙가능한 문자열이 "ababa"와 같은 경우를 단순 수식으로는 처리하기 쉽지 않기 때문이다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int T; cin >> T;
while (T--) {
int cnt = 0;
string s1, s2; cin >> s1 >> s2;
int s1len = s1.length(), s2len = s2.length();
for (int i = 0; i < s1len; i++) {
if (s1len - i >= s2len) {
if (s1.substr(i, s2len) == s2) i += s2len - 1;
}
cnt++;
}
cout << cnt << '\n';
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 2228 // C++] 구간 나누기 (0) | 2022.11.11 |
---|---|
[BOJ 24309 // C++] РАВЕНСТВО (0) | 2022.11.11 |
[BOJ 25859 // C++] Sort by Frequency (0) | 2022.11.10 |
[BOJ 25785 // C++] Easy-to-Pronounce Words (0) | 2022.11.10 |
[BOJ 25774 // C++] Simplified Calander System (0) | 2022.11.10 |