※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 25288번 문제인 영어 시험이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/25288
25288번: 영어 시험
aa(abba), ab(abba), ba(abba), bb(abba) 를 모두 부분 수열로 갖는다.
www.acmicpc.net
먼저, 구하는 답은 각 알파벳 X에 대하여 "XXXX...(N개)...X"꼴의 단어를 항상 부분수열로 갖고 있어야하므로 답은 길이가 (주어지는 알파벳의 가짓수) * N 이상이어야 한다는 것을 관찰하자.
한편, (주어진 알파벳들의 문자열)을 N번 반복시켜 만든 문자열은 각 한번의 반복에서 알파벳을 하나씩 골라 주어진 알파벳들로 만들 수 있는 모든 길이 N의 문자열을 찾을 수 있다는 점을 관찰하자. 이보다 짧은 문자열은 답이 될 수 없음을 위에서 관찰했으므로, 해당 문자열은 답 중 하나가 된다. 이를 출력해 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N; string s; cin >> N >> s;
while (N--) cout << s;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 25285 // C++] 심준의 병역판정검사 (0) | 2022.09.16 |
---|---|
[BOJ 25286 // C++] 11월 11일 (0) | 2022.09.15 |
[BOJ 6131 // C++] 완전 제곱수 (0) | 2022.09.13 |
[BOJ 6130 // C++] Privileged Cows (0) | 2022.09.12 |
[BOJ 6129 // C++] Obstacle Course (0) | 2022.09.11 |