728x90
문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.
출력
각 테스트 케이스마다 점수를 출력한다.
예제 입력 1
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
예제 출력 1
10
9
7
55
30
CODE
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const input = [];
rl.on('line', function (line) {
input.push(line);
}).on('close', function () {
// 입력받을 횟수
const count = +input[0];
for (let i = 1; i <= count; i++) {
// 점수와 보너스점수 초기화
let score = 0;
let bonus = 0;
// 입력받은 OX퀴즈 결과
const result = input[i].split('');
for (let j = 0; j < result.length; j++) {
// 맞았을 경우
if (result[j] === 'O') {
// 점수 에 1점 과 보너스를 더해준다.
score += 1 + bonus;
// 보너스 점수가 1점 오른다.
bonus++;
} else {
// 보너스 점수 초기화
bonus = 0;
}
}
console.log(score);
}
process.exit();
});
Comment
중첩 반복문을 통해서 연속해서 맞았을 경우 Bonus점수를 1씩 증가시키고 틀렸을 경우 0으로 초기화한다.
'ALGORITHM > 백준 With Node.js' 카테고리의 다른 글
[백준] 4673번 / 셀프 넘버 / Node.js (1) | 2021.04.24 |
---|---|
[백준] 4344번 / 평균은 넘겠지 / Node.js (0) | 2021.04.23 |
[백준] 1546번 / 평균 / Node.js (0) | 2021.04.23 |
[백준] 3052번 / 나머지 / Node.js (0) | 2021.04.22 |
[백준] 2577번 / 숫자의 개수 / Node.js (0) | 2021.04.22 |
댓글