728x90
반응형
15786번: Send me the money
문제
https://www.acmicpc.net/problem/15786
15786번: Send me the money
입력의 첫째 줄에 석규가 기억하는 원본 알파벳의 수 N(1 ≤ N ≤ 100)과 포스트잇의 개수 M(1 ≤ M ≤ 1000)이 주어진다. 다음 줄에 길이가 N인 알파벳 대문자로 이루어진 문자열 S가 주어진다. 이 후 M
www.acmicpc.net
풀이
기억하는 원본 알파벳의 각 글자가 순서대로 있는지 포스트잇의 문자열에서 찾으면 된다. 문자열의 find 메소드로 원본의 0번 index의 글자를 포스트잇의 처음부터 찾고 존재한다면 그 위치 + 1부터 1번 index의 글자를 찾으며 반복한다. 중간에 찾을 수 없다면 flag를 1로 바꾸고 멈춘다. 모든 알파벳을 순서대로 찾았다면 flag는 0일 것이고 가능한 포스트잇이다. 따라서 flag가 1이면 false, 0이면 true를 출력한다.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n, m;
string a, b;
cin >> n >> m >> a;
while (m--) {
cin >> b;
int idx = 0, flag = 0;
for (int i = 0; i < n; i++) {
if (b.find(a[i], idx) != -1)
idx = b.find(a[i], idx) + 1;
else {
flag = 1;
break;
}
}
if (flag)
cout << "false\n";
else
cout << "true\n";
}
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 18185 라면 사기 (Small) (6) | 2023.05.16 |
---|---|
[백준 / BOJ] C++ 10988 팰린드롬인지 확인하기 (0) | 2023.05.15 |
[백준 / BOJ] C++ 11966 2의 제곱인가? (2) | 2023.05.09 |
[백준 / BOJ] C++ 16507 어두운 건 무서워 (2) | 2023.05.08 |
[백준 / BOJ] C++ 28014 첨탑 밀어서 부수기 (0) | 2023.05.08 |