[アルゴリズム]白駿8958 java

7355 ワード

OXテスト


質問する


「OOXOXXOOO」というOX問答の結果がありますOは質問に答えたが,Xは間違った質問だ.問題が発生した場合、問題のスコアは問題に接続されたOの数になります.例えば、10番の問題の点数は3です.
「OOXOXOOO」の点数は1+2+0+1+0+1+2+3=10点です.
OXテストの結果が得られたら、得点プログラムを作成してください.

入力


最初の行は、テスト例の数を示します.各テスト・インスタンスは、0より大きい文字列と80未満の文字列の行で構成されます.文字列はOとXからなる.
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX

しゅつりょく


各テスト・インスタンスはスコアを出力します.
10
9
7
55
30

に答える

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Baekjoon_8958 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int TC = Integer.parseInt(br.readLine());
		
		int count = 0;
		int sum = 0;
		
		for(int i=0; i<TC; i++) {
			//readLine()은 여러줄을 읽지 않고 한줄만 읽기 때문에 반복문 안에서 돌려줘야 함!
			String line = br.readLine();			
			for(int j=0; j<line.length(); j++) {
            			//첫번째 문자가 O면 count + 1
				if(line.charAt(j) == 'O') {
					count++;
//					System.out.println("count"+count);
				}else {
					count = 0;
				}
                		//합계를 구하기 위해 count 값을 계속 더해준다.
				sum = sum + count;
			}
			System.out.println(sum);
            		//다음 줄의 합을 구하기 위해 다시 0으로 초기화해준다.
			count = 0;
			sum = 0;
		}

		
	}

}
  • 複数行入力、OXアタッチメント、StringTokenizerは使用できません!
    したがって、Stringとして格納されている文字列の中で1文字だけを選択し、charat()を使用してcharタイプに変換して問題を解決する必要があります.