[백준][자바] 8958번_OX퀴즈

2021. 11. 13. 22:02·Algorithm/Baekjoon (백준)
728x90
반응형

문제

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.

출력

각 테스트 케이스마다 점수를 출력한다.

입력 예제

5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX

출력 예제

10
9
7
55
30

소스코드

// 방법1
import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();   // case 개수

    String arr[] = new String[N];

    // testCase 입력
    for (int i = 0; i < N; i++) {
      arr[i] = sc.next();
    }
    
    sc.close();

    for (int i = 0; i < N; i++) {
      int score = 0;  // 획득 점수
      int total = 0;  // 총 점수

      for (int j = 0; j < arr[i].length(); j++) {
        if (arr[i].charAt(j) == 'O') {  // 맞혔을경우 1점씩 증가
          score += 1;
        } else {    // 틀렸을경우 연속점수 0으로 초기화
          score = 0;
        }
        total += score;
      }
      System.out.println(total);
    }
  }
}

 

// 방법2
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    int N = Integer.parseInt(br.readLine()); // case 개수
    
    String arr[] = new String[N];

    // testCase 입력
    for (int i = 0; i < N; i++) {
      arr[i] = br.readLine();
    }

    for (int i = 0; i < N; i++) {
      int score = 0; // 획득 점수
      int total = 0; // 총 점수

      for (int j = 0; j < arr[i].length(); j++) {
        if (arr[i].charAt(j) == 'O') { // 맞혔을경우 1점씩 증가
          score ++;
        } else { // 틀렸을경우 연속점수 0으로 초기화
          score = 0;
        }
        total += score;
      }
      System.out.println(total);
    }
  }
}

 

// 방법3
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    StringBuilder sb = new StringBuilder();	//StringBuilder 추가
    int N = Integer.parseInt(br.readLine()); 
    
    String arr[] = new String[N];

    for (int i = 0; i < N; i++) {
      arr[i] = br.readLine();
    }

    for (int i = 0; i < N; i++) {
      int score = 0; // 획득 점수
      int total = 0; // 총 점수

      for (int j = 0; j < arr[i].length(); j++) {
        if (arr[i].charAt(j) == 'O') { 
          score ++;
        } else {
          score = 0;
        }
        total += score;
      }
      sb.append(total).append('\n');	//StringBuilder에 저장
    }
    System.out.println(sb);
  }
}
  • 좀 더 빠른 실행을 위해 System.out.println() 을 반복하여 호출하지 않고 StringBuilder 를 이용하여 문자열을 이어준 뒤 한 번에 출력해준다
  • StringBuilder 에 결과를 넣어주고 반드시 줄바꿈을 해준 뒤 저장한 후, 맨 마지막에 sb로 객체를 출력한다.

'Algorithm > Baekjoon (백준)' 카테고리의 다른 글

[백준][자바] 4344번_평균은 넘겠지  (0) 2021.11.14
[백준][파이썬] 4344번_평균은 넘겠지  (0) 2021.11.14
[백준][파이썬] 8958번_OX퀴즈  (0) 2021.11.13
[백준][자바] 1546번_평균  (0) 2021.11.11
[백준][파이썬] 1546번_평균  (0) 2021.11.11
'Algorithm/Baekjoon (백준)' 카테고리의 다른 글
  • [백준][자바] 4344번_평균은 넘겠지
  • [백준][파이썬] 4344번_평균은 넘겠지
  • [백준][파이썬] 8958번_OX퀴즈
  • [백준][자바] 1546번_평균
깜냠미
깜냠미
it 블로그입니다.
  • 깜냠미
    PLAY WORLD
    깜냠미
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (156)
      • Programming Langue (23)
        • Python (파이썬) (19)
        • Typescript (타입스크립트) (1)
        • Javascript (자바스크립트) (3)
      • Algorithm (114)
        • Baekjoon (백준) (106)
        • Programmers (프로그래머스) (8)
      • ETC (9)
        • Tool (5)
        • DataBase (2)
        • Git || GitHub (1)
        • 번역글 (1)
      • WEB (8)
        • React (5)
        • 기초 (0)
      • 일상 (2)
        • 정보 (1)
        • 구경 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준 파이썬
    백준 1단계
    Python
    문자열
    백준 7단계
    백준
    백준 3단계
    백준 자바
    백준 1차원배열
    파이썬
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
깜냠미
[백준][자바] 8958번_OX퀴즈
상단으로

티스토리툴바