본문 바로가기
백준

[백준] 단계별로 풀어보기(단계:5,1차원 배열,JAVA)8958번, OX퀴즈

by 열정적인 이찬형 2021. 12. 15.

문제 링크

8958번: OX퀴즈
 
www.acmicpc.net

주의사항

  • JAVA를 사용하여 프로그램을 사용하였습니다.
  • 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{ 	
	public static void main(String[] args){
    }
}

문제 설명


접근 방법

  • BufferedReader를 사용하여 입력값을 저장합니다.
  • 입력받은 OX문자열 개수의 크기만큼 배열을 생성하였습니다.
  • for문을 통해서 각 OX문자열을 배열에 저장하였습니다.
  • for문을 통해서 O가 나오면 stack을 +1을 하며 X가 나오면 0으로 초기화합니다.
  • stack값을 sum에 더한뒤 하나의 문자열이 끝나면 sum값을 bw에 저장합니다.
  • bw에 저장되어 있는 내용을 모두 출력합니다.

결과 코드

import java.util.*;
import java.io.*;
public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //입력 값을 받는 BufferedReader
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        //입력 값을 출력하는 BufferedWriter
        int index = Integer.parseInt(br.readLine());		//OX 문자열 개수
        int sum=0;
        String[] arr = new String[index];			//개수만큼 배열 생성
        for(int i=0;i<index;i++){				//배열에 OX저장
            arr[i] = br.readLine();
        }
        for(int i=0;i<index;i++){				//OX에서 O개수 세는 과정
            int stack=0;
            for(int j=0;j<arr[i].length();j++){
                if(arr[i].charAt(j)=='O'){
                    stack++;
                }else if(arr[i].charAt(j)=='X'){
                    stack=0;
                }
                sum +=stack;
            }
            bw.write(sum + "\n");				//결과 bw에 저장
            sum=0;						//합계 초기화
        }
        bw.flush();						//결과 출력
        bw.close();
        br.close();
    }
}
 

댓글