JavaScript 백준 8958 OX퀴즈

🔥백준 8958 OX퀴즈

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


const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');

const num = Number(input[0]);

for (let i = 1; i <= num; i++) {
  let sum = 0;
  let count = 0;
  
  for (let j = 0; j < input[i].length; j++ {
    if (input[i][j] === "O") {
    	count++;
    } else {
      	count = 0;
    }
  
    sum += count;
  }

  console.log(sum);
}

🧵풀이

케이스 숫자를 num로 지정해주고 for 문을 케이스 만큼 실행한다.
이때 중첩 for문을 사용하여 input[i][j]가 문자"O"일 경우에는
count에 ++를 한다.

그럼 이 경우 i = 1, j = 0, count = 1 인 상태가 된다.
2번 for문의 sum으로 넘어가 count만큼을 더해준다.
다시 2번 for문의 시작부분으로 돌아가 작업을 시작하여 "O"가
아닌 부분을 마주치게 된다면 count를 0으로 바꿔준다.

이 때 sum은 여전히 count를 더해준 값 그대로이다.이렇게 마지막
작업이 끝나게 되면 1번 for문의 console.log(sum)을 실행해주고
i를 ++ 한 상태로 다시 2번 for문으로 돌아가 이전의 작업을 다른
케이스로 진행하게 된다.


공부하는 중이라 글이 깔끔하지 못하거나 틀린부분이 있을 수 있습니다.
더 좋은 방법이 있거나 풀이에 틀린 부분이 있다면 말씀해주십쇼😮

좋은 웹페이지 즐겨찾기