Scanner sc = new Scanner(System.in); int a = sc.nextInt(); String quiz = ""; int[] score = new int[a]; int count = 0;
퀴즈의 채점결과를 입력받을 횟수인 정수 a를 Scanner로 입력받고, quiz의 정답 여부를 문자열로 받을 변수인 quiz를 초기화 해준다.
점수를 저장할 배열 score를 선언해주고, 'O'가 몇번 나왔는지 Count해줄 count 변수를 초기화해준다.
for (int i = 0; i < a; i++) { quiz = sc.next(); for (int j = 0, k=0; j < quiz.length(); j++,k++) { if (quiz.charAt(j) == 'O') { score[i] += 1; count += 1; if (count >= 2) { score[i] = score[i] + (k * 1); } }else { count = 0; k = -1; } } }
quiz 변수에 O와X로 이루어진 퀴즈 채점결과를 저장해주고,
quiz를 charAt() 메서드를 이용해서 한글자씩 비교해준다.
'O'일 경우 1씩 score를 증가시키고, count도 1씩 증가시킨다.
count가 2보다 크거나 같을 경우, score에 1이 아닌 (k*1) 를 더해준다.
'X'가 나올경우 count를 초기화 시키고 k값을 -1로 만든다.
k값을 -1로 만들지 않으면 1씩 증가하는 퀴즈의 연속 정답 값이,
X를 만났을때 초기화 되지 않고 계속 커지기 때문이다.
for(int i=0; i<score.length; i++) { System.out.println(score[i]); }
score 배열의 값(퀴즈 점수들)을 for문으로 뽑아내어 출력해준다.
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); String quiz = ""; int[] score = new int[a]; int count = 0; for (int i = 0; i < a; i++) { quiz = sc.next(); for (int j = 0, k=0; j < quiz.length(); j++,k++) { if (quiz.charAt(j) == 'O') { score[i] += 1; count += 1; if (count >= 2) { score[i] = score[i] + (k * 1); } }else { count = 0; k = -1; } } } for(int i=0; i<score.length; i++) { System.out.println(score[i]); } }
}