-
백준 5586번: JOI와 IOI문자열(String) 2018. 6. 29. 12:34반응형
https://www.acmicpc.net/problem/5586
1. 문제
입력으로 주어지는 문자열에서 연속으로 3개의 문자가 JOI 또는 IOI인 곳이 각각 몇 개 있는지 구하는 프로그램을 작성하시오. 문자열을 알파벳 대문자로만 이루어져 있다. 예를 들어, 아래와 같이 "JOIOIOI"에는 JOI가 1개, IOI가 2개 있다.
2. 알고리즘
키워드 - 문자열 처리
O(n)
3. 코드
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include <iostream>#include <sstream>#include <string>#include <algorithm>#include <functional>#include <vector>#include <list>#include <queue>#include <deque>#include <map>#include <set>#include <stack>#include <cstring>using namespace std;#define MAX_SIZE 100#define INF 0x7fffffff/** @memory - 1988 kb* @time - 0 ms*/int main() {cin.tie(0);std::ios::sync_with_stdio(false);string s; cin >> s;const int size = s.size();string joi("JOI");string ioi("IOI");int sol_a = 0;int sol_b = 0;for(int i=0; i<size; i++) {if (joi == s.substr(i,3)) {sol_a++;}if (ioi == s.substr(i,3)) {sol_b++;}}cout << sol_a << "\n";cout << sol_b << "\n";return 0;}cs 반응형'문자열(String)' 카테고리의 다른 글
백준 9933번: 민균이의 비밀번호 (0) 2018.06.29 백준 2789번: 유학 금지 (0) 2018.06.29 백준 1120번: 문자열 (0) 2018.06.29 백준 3986번: 좋은 단어 (0) 2018.06.27 백준 5218번: 알파벳 거리 (0) 2018.06.27