BJ-8958-OX퀴즈

이은지·2023년 1월 16일
0

코딩테스트

목록 보기
68/76

문제
https://www.acmicpc.net/problem/8958

풀이

const 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);
}

[멘토님 풀이]

const line = require("fs").readFileSync("./input.txt").toString().split("\n");

for (let i = 1; i <= line[0]; i += 1) {
  let contiguousOCounts = 0;
  let score = 0;
  for(let j = 0; j < line[i].length; j++) {
    const char = line[i];
    if (char[j] === "O") {
      score += contiguousOCounts + 1;
      contiguousOCounts += 1;
    } else if (char[j] === "X") {
      contiguousOCounts = 0
    }
  }
  console.log(score);
}

마무리

연속되는 요소를 검사하거나 가져오고 싶으면 이중반복문을 써야한다..!

0개의 댓글