문제
입력으로 주어지는 문자열에서 연속으로 3개의 문자가 JOI 또는 IOI인 곳이 각각 몇 개 있는지 구하는 프로그램을 작성하시오. 문자열을 알파벳 대문자로만 이루어져 있다. 예를 들어, 아래와 같이 "JOIOIOI"에는 JOI가 1개, IOI가 2개 있다.
입력
첫째 줄에 알파벳 10000자 이내의 문자열이 주어진다.
출력
첫째 줄에 문자열에 포함되어 있는 JOI의 개수, 둘째 줄에 IOI의 개수를 출력한다.
풀이
문자열의 앞에서 부터 하나씩 , J가 나올시 O,I가 다음 열에 나오는지 확인하고 맞으면 cnt++해준다. 똑같은 방식으로 IOI도 반복해준뒤 출력해주면 완료. ㅇㅅㅇ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int cnt1=0;
int cnt2=0;
for(int i=0;i<input.length()-2;i++) {
switch(input.charAt(i)) {
case 'J':
if(input.charAt(i+1)=='O'&&input.charAt(i+2)=='I') {
cnt1++;
break;
}
case 'I':
if(input.charAt(i+1)=='O'&&input.charAt(i+2)=='I') {
cnt2++;
}
}
}
System.out.println(cnt1);System.out.println(cnt2);
}
}
|
https://www.acmicpc.net/problem/5586
반응형
'Algorithms > BOJ[Java]' 카테고리의 다른 글
[백준/2480번] 주사위 세개 (한국 올림피아드 2010 중등부)[Java] (0) | 2019.12.12 |
---|---|
[백준/10569번] 다면체 ( 2014 Pacific Northwest Region Programming Contest Division 2)[Java] (0) | 2019.12.12 |
[백준/5597번] 과제 안 내신 분?(JOI 2007) [Java] (0) | 2019.12.12 |
[백준/5598번] 카이사르 암호(JOI 2007 예선) [Java] (0) | 2019.12.11 |
[백준/5613번] 계산기 프로그램(JOI 2006) [Java] (0) | 2019.12.10 |