728x90
8958번: OX퀴즈
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수
www.acmicpc.net
import java.util.*;
import java.io.*;
class Main {
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int num = Integer.parseInt(br.readLine());
String ox[] = new String[num];
for(int i=0; i<num; i++){
ox[i] = br.readLine();
int cnt = 0;
int tmpcnt = 0;
for(int j=0; j<ox[i].length(); j++){
if(ox[i].charAt(j)=='X'){
tmpcnt = 0;
}else{
tmpcnt += 1;
cnt = cnt + tmpcnt;
}
}
sb.append(cnt+"\n");
}
br.close();
System.out.println(sb);
}
}
읽기 - BufferedReader
출력 - StringBuilder
첫 번째 라인의 숫자를 읽어서 num 변수에 넣는다.
String형 배열을 num 크기만큼 선언한다.
num만큼 반복하면서 라인을 읽어 배열 ox에 저장한다.
출력할 총 점수(cnt) 와 연속된 'O' 일 경우 +될 점수(tmpcnt)를 초기화 한다.
ox 배열 안에 string의 길이만큼 반복하며
문자열에 문자 하나씩 'X' 인지 검사한다.
'X'이면 tmpcnt를 0으로 만들어주고, 아니면 tmpcnt를 더해준다.
결과를 StringBuilder를 이용해 저장하고 마지막에 출력한다.
반응형
'알고리즘, 코딩 문제풀기' 카테고리의 다른 글
백준 15596번 정수 N개의 합 (함수) (0) | 2021.03.31 |
---|---|
백준 4344번 평균은 넘겠지 - BufferedReader, StringBuilder, StringToKenizer, String.format (0) | 2021.03.31 |
백준 1546번 문제 : 평균 (BufferedReader, StringTokenizer) 사용 (0) | 2021.03.26 |
백준 3052번 : 나머지 자바 HashSet 사용 (0) | 2021.03.26 |
백준 11021번 A+B - 7 JAVA (0) | 2021.01.03 |