https://www.acmicpc.net/problem/8958
문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.
출력
각 테스트 케이스마다 점수를 출력한다.
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const n = Number(input[0]);
for(let i=1; i<=n; i++){
let count = 1;
let sum = 0;
for(let j=0; j<input[i].length; j++){
if(input[i][j]==="O"){
sum+=count;
count++;
}else{
count = 1;
}
}
console.log(sum);
}
한 줄씩 나눠 input값을 입력 받아 첫번째 줄의 값으로 테스트 케이스 개수를 저장한다.
두번째 줄부터 테스트 케이스 개수만큼 바깥쪽 for문을 돌고
각 줄의 OX개수만큼 안쪽 for문을 돌며 O일 경우 0으로 초기화한 sum에 count를 1씩 증가시켜 더해준다.
X일 경우 count를 1로 다시 초기화하여 더해준다.
'ALGORITHM' 카테고리의 다른 글
[백준/ node.js] 함수 - 4673번 셀프 넘버 (0) | 2021.07.13 |
---|---|
[백준/ node.js] 배열 - 4344번 평균은 넘겠지 (0) | 2021.07.04 |
백준 node.js로 여러 줄의 값 입력받을 때 주의해야 할 점 (0) | 2021.07.01 |
[백준/ node.js] 배열 - 3052번 나머지 (0) | 2021.06.30 |
[백준/ node.js] 배열 - 2577번 숫자의 개수 (0) | 2021.06.29 |