문제출처: https://www.acmicpc.net/problem/1543
풀이
정답률이 예상외로 낮네요.. 아마도 c언어로 구현하는데 문자열을 입력할 때 공백까지 포함해서 입력받는법을 모르셨거나, c++로 구현시 공백을 감안하지않은 분들이 많았기 때문일겁니다. 저는 c++ string 으로 구현하였는데, 문자열입력시 getline함수만 사용하면 쉽게 풀리는 것 같습니다!
코드
#include<iostream> #include<string> using namespace std; int main() { string s1, s2; getline(cin, s1); getline(cin, s2); int cnt = 0; if (s1.size() < s2.size()) { cout << 0 << endl; return 0; } for (int i = 0; i <= s1.size()-s2.size();) { bool check = true; for (int j = 0; j < s2.size(); j++) { if (s1[i + j] != s2[j]) { check = false; break; } } if (check) { cnt++; i += s2.size(); } else i++; } cout << cnt << endl; }
결과
'문제풀이(BOJ) > 문자열' 카테고리의 다른 글
[백준 1296] 데이트 (0) | 2020.01.13 |
---|---|
[백준 8892] 팰린드롬 (0) | 2020.01.10 |
[백준 11008] 복붙의 달인 (0) | 2020.01.10 |
[백준 12780] 원피스 (0) | 2020.01.10 |
[백준 2535] 아시아 정보올림피아드(클래스 연습) (0) | 2020.01.06 |