https://www.acmicpc.net/problem/5586
5586번: JOI와 IOI
입력으로 주어지는 문자열에서 연속으로 3개의 문자가 JOI 또는 IOI인 곳이 각각 몇 개 있는지 구하는 프로그램을 작성하시오. 문자열은 알파벳 대문자로만 이루어져 있다. 예를 들어, 아래와 같
www.acmicpc.net
c++로 백준 5586번 문제를 풀어보겠다.
문제
입력으로 주어지는 문자열에서 연속으로 3개의 문자가 JOI 또는 IOI인 곳이 각각 몇 개 있는지 구하는 프로그램을 작성하시오. 문자열은 알파벳 대문자로만 이루어져 있다. 예를 들어, 아래와 같이 "JOIOIOI"에는 JOI가 1개, IOI가 2개 있다.

입력
첫째 줄에 알파벳 10000자 이내의 문자열이 주어진다.
출력
첫째 줄에 문자열에 포함되어 있는 JOI의 개수, 둘째 줄에 IOI의 개수를 출력한다.
예제 입력 1 복사
JOIJOI
예제 출력 1 복사
2
0
<문제 풀이>
1. string 형의 문자열을 선언한 후 입력받는다.
2. for문을 통해 문자열 처음부터 끝까지 반복하며 JOI와 IOI의 개수를 센다.
3. JOIcount 값과 IOIcount 값을 출력한다.
- for문 코드 내용 -
처음 i번째 단어가 J, 그 다음 i+1번째 단어가 O, 또 그다음 i+2번째 단어가 I면 JOIcount 값을 하나 더한다.
처음 i번째 단어가 I, 그 다음 i+1번째 단어가 O, 또 그다음 i+2번째 단어가 I면 IOIcount 값을 하나 더한다.
코드는 다음과 같다.
'C++' 카테고리의 다른 글
[백준 알고리즘] 10867번 : 중복 빼고 정렬하기, c++ (0) | 2022.01.18 |
---|---|
[백준 알고리즘] 10820번 : 문자열 분석, c++ (0) | 2022.01.18 |
[백준 알고리즘] 5598번 : 카이사르 암호, c++ (0) | 2022.01.17 |
[백준 알고리즘] 10828번 : 스택, c++ (0) | 2022.01.17 |
[백준 알고리즘] 10845번 : 큐, c++ (0) | 2022.01.17 |