내가 생각했을때 문제에서 원하는부분
첫째 줄에 알파벳 10000자 이내의 문자열이 주어진다.
첫째 줄에 문자열에 포함되어 있는 JOI의 개수, 둘째 줄에 IOI의 개수를 출력한다.
내가 이 문제를 보고 생각해본 부분
입력 처리: BufferedReader를 사용하여 한 줄의 문자열을 입력받는다.
카운트 변수 초기화: joiCount와 ioiCount 변수를 0으로 초기화한다.
문자열 탐색: 문자열의 길이에서 3을 뺀 만큼 반복하면서, 각 위치에서 3글자씩 잘라서 "JOI"와 "IOI"를 비교한다.
결과 출력: StringBuilder에 결과를 추가하고, 마지막에 한번에 출력한다.
코드로 구현
package baekjoon.baekjoon_27;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 백준 5586번 문제
public class Main972 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String input = br.readLine();
int joiCount = 0;
int ioiCount = 0;
for(int i = 0; i <= input.length() - 3; i++) {
String substring = input.substring(i, i + 3);
if(substring.equals("JOI")) {
joiCount++;
} else if(substring.equals("IOI")) {
ioiCount++;
}
}
sb.append(joiCount).append("\n").append(ioiCount);
System.out.print(sb.toString());
br.close();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.