Blue___
코딩배우는 학생🌎
Blue___
전체 방문자
오늘
어제
  • 코딩배우는 학생🧀 (242)
    • Algorithms (145)
      • BOJ[Java] (107)
      • Programmers[Java] (32)
      • Coding_Contest (3)
    • Web (22)
      • .NET Core C# (2)
      • Java (1)
      • Oracle SQL (7)
      • Web-ProJect (3)
      • Error처리 (1)
      • Web지식 (4)
      • Javascript (1)
      • Vue (3)
    • Git (4)
    • Java_beginner(Repl.it) (55)
      • Auto-Graded-Course(AP CS A) (54)
    • 프로젝트 직딩일기 (3)
    • Hanyang_Assignment (0)
    • 이모저모 (4)
      • 잡담 (1)
      • 2021 오픈소스 컨트리뷰터 아카데미 (1)
      • DDD - 6기! (1)
    • 북리뷰 (1)
      • 리팩토링 2판 (1)
      • 클린코드 (0)

블로그 메뉴

  • 🐰GITHUB
  • ☘️포트폴리오
  • 🌸MBC개발_투표 2022
  • 🍭MBC_APP

공지사항

인기 글

태그

  • coding
  • Java
  • Bakjoon
  • 코딩배우는 학생
  • 코딩
  • 알고리즘
  • 프로그래머스
  • auto-graded course
  • 자바
  • Java tutorial
  • algorithm
  • 프로그래밍
  • AP CS A
  • programmers
  • 코딩배우는학생
  • REPL
  • 백준
  • repl.it
  • java basic
  • 레플릿

최근 댓글

최근 글

티스토리

hELLO
Blue___

코딩배우는 학생🌎

[백준/5586번] JOI와 IOI(JOI 2008)[Java]
Algorithms/BOJ[Java]

[백준/5586번] JOI와 IOI(JOI 2008)[Java]

2019. 12. 12. 01:17

문제

입력으로 주어지는 문자열에서 연속으로 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
import java.util.*;
 
class Main {
      public static void main(String[] args) {
          Scanner sc=new Scanner(System.in);
          String input=sc.next();
          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

 

5586번: JOI와 IOI

문제 입력으로 주어지는 문자열에서 연속으로 3개의 문자가 JOI 또는 IOI인 곳이 각각 몇 개 있는지 구하는 프로그램을 작성하시오. 문자열을 알파벳 대문자로만 이루어져 있다. 예를 들어, 아래와 같이 "JOIOIOI"에는 JOI가 1개, IOI가 2개 있다. 입력 첫째 줄에 알파벳 10000자 이내의 문자열이 주어진다.  출력 첫째 줄에 문자열에 포함되어 있는 JOI의 개수, 둘째 줄에 IOI의 개수를 출력한다. 예제 입력 1 복사 JOIOIOIOI 예

www.acmicpc.net

 

반응형
저작자표시 (새창열림)

'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
    'Algorithms/BOJ[Java]' 카테고리의 다른 글
    • [백준/2480번] 주사위 세개 (한국 올림피아드 2010 중등부)[Java]
    • [백준/10569번] 다면체 ( 2014 Pacific Northwest Region Programming Contest Division 2)[Java]
    • [백준/5597번] 과제 안 내신 분?(JOI 2007) [Java]
    • [백준/5598번] 카이사르 암호(JOI 2007 예선) [Java]
    Blue___
    Blue___
    완전 연소한 불은 재를 남기지않는다 : 코딩배우는학생 🌎

    티스토리툴바