문제: https://www.acmicpc.net/problem/5586
입력의 제한이 10,000자 이내의 문자열이므로 루프를 돌면서 substring이 "JOI"나 "IOI"인지 확인하는 방식으로 해결했다.
다른 좋은 방법 혹은 더 깔끔한 코드(언어 차원에서 substring의 개수를 세는 메소드라던가...)가 있을 것 같지만
우선은 Accept 되었으므로...
소스 코드를 참고하세요. 소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String inputString = scanner.nextLine(); int countOfJOI = 0; int countOfIOI = 0; for (int i = 0; i <= inputString.length() - 3; ++i) { String currentSubString = inputString.substring(i, i + 3); if (currentSubString.equals("JOI")) { countOfJOI++; } else if (currentSubString.equals("IOI")) { countOfIOI++; } } System.out.println(countOfJOI); System.out.println(countOfIOI); scanner.close(); } } | cs |