문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.
출력
각 테스트 케이스마다 점수를 출력한다.
예제 입력
5 OOXXOXXOOO OOXXOOXXOO OXOXOXOXOXOXOX OOOOOOOOOO OOOOXOOOOXOOOOX
예제 출력
10 9 7 55 30
[소스코드]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import java.util.*; public class Main { public static void main(String[] args) { Scanner sca = new Scanner(System.in); int n = sca.nextInt(); sca.nextLine(); int result[] = new int[n]; for(int i=0; i<n; i++){ String line = sca.nextLine(); int combo =0; int sum =0; for(int j=0; j<line.length(); j++){ if(line.charAt(j) == 'O'){ combo++; sum+=combo; }else{ combo=0; } } result[i]=sum; } for(int i=0; i<n; i++){ System.out.println(result[i]); } } } | cs |
[풀이]
- O나올때 마다 combo변수를 1씩 증가시키고
- sum변수에 누적하여 더한다.
- O이 아닌겨우는 combo를 다시 0으로 초기화하면 된다.
- 각각의 라인에 따라 더한 sum들을 result배열에 저장하고
- 출력한다.
'백준알고리즘' 카테고리의 다른 글
[6단계 1차원 배열 사용하기]10039번 (0) | 2018.01.12 |
---|---|
[6단계 1차원 배열 사용하기]2920번 (0) | 2018.01.10 |
[6단계 1차원 배열 사용하기]2577번 (0) | 2018.01.05 |
[6단계 1차원 배열 사용하기]1152 (0) | 2018.01.04 |
[5단계 함수 사용하기]1065번 (0) | 2018.01.03 |