시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 76362 38431 32878 51.475%
문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
INPUT
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
OUTPUT
10
9
7
55
30
"O"
가 나올 때 마다 총점에 더해지는 점수가 1씩 늘어나고, "X"
가 나올 때 마다 총점에 더해지는 점수가 초기화되는 로직이다.스택
과 총점 변수
를 따로 둬서 점수를 늘려가면 된다.const reaeline = require("readline");
const rl = reaeline.createInterface({
input: process.stdin,
output: process.stdout
});
const input = [];
rl.on("line", function (line) {
input.push(line);
}).on("close", function () {
const quizList = input.slice(1);
for (let j = 0; j < quizList.length; j++) {
let scoreStack = 0;
let scoreTotal = 0;
const quiz = [...quizList[j]];
for (let i = 0; i < quiz.length; i++) {
if (quiz[i] === "O") {
scoreStack++;
scoreTotal += scoreStack;
}
if (quiz[i] === "X")
scoreStack = 0;
}
}
console.log(scoreTotal);
}
process.exit();
})