출처
백준 온라인 저지
문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.
풀이
첫째줄에는 테스트 케이스의 개수가 있습니다.
for 문을 돌려 각 배열마다 있는 테스트 케이스를 지정해줍니다.
해당 테스트 케이스에서의 count와 sum을 0으로 지정해주고
해당 배열의 길이를 기준으로 for 문을 돌려줍니다.
나머지 for 문으로 해당 문자열에서 문자를 하나씩 가져와 비교를 해줍니다.
console.log( "ABCD"[1] );
출력 => "B"
이때 해당 문자가 "O"이면 count 값을 증가시켜주고, 아닐 시에는 count를 다시 0으로 만들어 줍니다.
모든 입력값을 비교한 후 count 값을 계속 누적시켜 결괏값을 출력시켜줍니다.
코드
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let num = Number(input[0]);
for (let i = 1; i <= num; i++) {
let count = 0;
let sum = 0;
for (let j = 0; j < input[i].length; j++) {
if (input[i][j] === "O") {
count++;
} else {
count = 0;
}
sum += count;
}
console.log(sum);
}