블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형
문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다
문제
풀이
한 글자씩 iteration을 하면서, X를 만나면 증가시켜줄 점수(score)를 0으로 초기화해준다.
O를 만나면 점수(score) 값을 1씩 증가시켜주면서, 계속해서 총 합을 구하면 된다.
const solution = (input) => {
const n = +input[0];
return [...Array(n).keys()]
.map((i) => {
return input[i + 1].split('').reduce(
(acc, c) => {
if (c === 'X') {
acc.score = 0;
} else {
acc.score += 1;
acc.rs += acc.score;
}
return acc;
},
{ rs: 0, score: 0 }
).rs;
})
.join('\n');
};
const input = [];
require('readline')
.createInterface({ input: process.stdin })
.on('line', (line) => input.push(line))
.on('close', (_) => {
console.log(solution(input));
process.exit(0);
});
전체 코드
https://github.com/bluemiv/Algorithm/blob/master/baekjoon/nodejs/src/ex08/ex8958.js
풀이 결과
관련 글
2022.07.21 - [Algorithm/Beakjoon] - jest 단위테스트를 이용하여 백준 알고리즘 문제 편하게 풀기
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
백준 4673번 / 셀프 넘버 (nodejs 알고리즘 풀이) (0) | 2022.08.15 |
---|---|
백준 4344번 / 평균은 넘겠지 (nodejs 알고리즘 풀이) (0) | 2022.08.14 |
백준 1546번 / 평균 (nodejs 알고리즘 풀이) (0) | 2022.08.12 |
백준 3052번 / 나머지 (nodejs 알고리즘 풀이) (0) | 2022.08.11 |
백준 2577번 / 숫자의 개수 (nodejs 알고리즘 풀이) (0) | 2022.08.10 |