728x90
반응형
[Java] 백문 문제 8958 - OX퀴즈
백준 문제 OX 퀴즈
문제
입력과 출력
예제 입력과 출력
전체 소스코드
package com.company;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] problems = new String[n];
int[] scores = new int[n];
Arrays.fill(scores, 0);
int tscore = 0;
boolean check = false;
for (int i = 0; i < problems.length; i++)
problems[i] = sc.next();
sc.close();
// 한 문제씩 점수 내기
for (int j = 0; j < problems.length; j++) {
check = false;
tscore = 0;
for (int k = 0; k < problems[j].length() ; k++) {
if (problems[j].charAt(k) == 'O') {
check = true;
tscore ++;
}
else { // X
check = false;
tscore = 0;
}
if (check) {
scores[j] += tscore;
}
}
System.out.println(scores[j]);
}
}
}
소스 코드 설명
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] problems = new String[n];
int[] scores = new int[n];
Arrays.fill(scores, 0);
int tscore = 0;
boolean check = false;
for (int i = 0; i < problems.length; i++)
problems[i] = sc.next();
sc.close();
Java에서 입력 받는 클래스 Scanner를 생성해서 n개의 OX 문제 결과 묶음 수를 입력 받는다. int n = sc.nextInt();
n개의 문제 결과를 problems 배열 길이로 세팅된다. String[] problems = new String[n];
결과들의 점수들을 담을 변수 int[] scores = new int[n]; 를 선언한다.
Arrays.fill 클래스 메서드를 사용해 점수를 담은 배열 변수 scores의 기본 값을 0으로 셋팅한다.
반복문을 통해 문제 수 만큼 OX 문제 결과 묶음을 입력받는다.
그리고 Scanner 객체를 소멸시킨다.
// 한 문제씩 점수 내기
for (int j = 0; j < problems.length; j++) {
check = false;
tscore = 0;
for (int k = 0; k < problems[j].length() ; k++) {
if (problems[j].charAt(k) == 'O') {
check = true;
tscore ++;
}
else { // X
check = false;
tscore = 0;
}
if (check) {
scores[j] += tscore;
}
}
System.out.println(scores[j]);
}
이중 포문으로 각 문제들의 점수를 계산한다.
외부 반복문에서는 문제 결과 묶음 수 만큼 반복하고, 내부 반복문은 문제 결과의 개 수만큼 반복한다.
문제 결과 묶음 당 O, X인지 체크를 할 변수와 임시로 점수를 가산할 변수를 초기화 한다.
check = false; tscore = 0;
내부 반복문에서 한 글자씩 확인을 하는데,
'O'이면 check를 true를 해서 점수를 가산할 수 있도록 하고
'X'이면 check를 false를 해서 점수를 0으로 세팅한다.
그리고 결과 값을 담은 scores[j]를 출력한다.
scores 변수 없이 임시 변수로 출력해도 무관하고, 코드 길이를 줄일 수도 있다.
도움이 되셨다면 좋아요 꾹!
728x90
반응형
'Algorithm' 카테고리의 다른 글
[Java] 백준 15596 - 정수 N개의 합 (0) | 2022.04.25 |
---|---|
[Java] 백준 4344 평균은 넘겠지 (0) | 2022.04.25 |
[Java] 백준 문제 1546 평균 (0) | 2022.04.23 |
[Java] 백준 문제 3052 - 나머지 (0) | 2022.04.21 |
[Java] 백준 문제 2577 숫자의 개수 (0) | 2022.04.21 |