코딩/백준

[백준 8958번/1차원 배열] OX퀴즈 - Java

조밈밍 2022. 3. 1. 14:32

https://www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net

=> score값에 카운트한 값을 계속 더해간다.

=> 처음 O을 만나면 1을 더하고 if 다음이 O이면 2를 더하고

     else 아니면 카운트 값을 0으로 바꾸고 더하지 않는다.

=> O는 다시 1부터 카운트

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);	

		int n = sc.nextInt();					
		
		String str;						
		for(int i=0; i<n; i++) {	
			str = sc.next();				
			int score = 0, cnt = 0;
			for(int j=0; j<str.length(); j++) {
				if(str.charAt(j) == 'O') {		
					cnt++;
					score += cnt;
				}else {
					cnt = 0;
				}
			}
			System.out.println(score);
		}
	}
}

 

공부

1) sc.next() : 공백 전까지 입력 받음 (enter 포함)

    sc.nextLine() : 한 줄 전체를 입력 받음

 

2) charAt() : string 타입으로 받은 문자열을 char 타입으로 한 글자만 받는 함수
   - String 타입의 참조변수 뒤에 .을 입력하고 charAt('문자번호')