๊ด€๋ฆฌ ๋ฉ”๋‰ด

\(@^0^@)/

[JS] ๋ฐฑ์ค€ 8958๋ฒˆ OXํ€ด์ฆˆ ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜

[JS] ๋ฐฑ์ค€ 8958๋ฒˆ OXํ€ด์ฆˆ

minjuuu 2021. 9. 28. 16:27
728x90

๐Ÿฑ‍๐Ÿ‘“ 1. ๋ฌธ์ œ : 3052

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


๐Ÿ”ฅ 2. ํ’€์ด + ์ฝ”๋“œ

const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(file).toString().trim().split('\n');
let n = Number(input[0]);

// i = 1 ์„ ํ•ด์ฃผ๋Š” ์ด์œ ๋Š”, 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฉด input[0] ์ด์–ด์„œ test case์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋œธ.
for (let i = 1; i <= n; i++) {
  // ๋ฐ–์—์„œ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด์ค„ ๊ฒฝ์šฐ, ๋ชจ๋“  for๋ฌธ์— ์ ์šฉ๋˜๊ธฐ์— ์ž˜ ๋ชป๋œ ๊ฐ’์ด ๋‚˜์˜ด. 
  let sum = 0;
  let count = 0;
  
  for (let j = 0; j < input[i].length; j++) {
    // input[i][j]๋ฅผ ํ•ด์„œ O ๋˜๋Š” X ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ถœ๋ ฅ
    // ๋ฌธ์ž๊ฐ€ "O" ์ด๋ฉด count์— 1 ์ถ”๊ฐ€, ์•„๋‹ˆ๋ฉด 0 (ํŒจ์Šค)
    if(input[i][j] === "O") {
      count++;
    } else {
      count = 0;
    }
    // count๊ฐ€ ์™„์ „ํžˆ ํ•ด๊ฒฐ๋œ ํ›„์— sum์— count๊ฐ’์„ ๋ˆ„์ ์‹œํ‚จ๋‹ค.
    sum += count;
  }
  console.log(sum)
}

โšก 3. ์ •๋ฆฌ

1์ฐจ์› ๋ฐฐ์—ด์˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค๊ณผ ๋น„์Šทํ•ด์„œ ์–ด๋ ต์ง„ ์•Š์•˜๋Š”๋ฐ, ๊ทธ๋ž˜๋„ ์•„์ง ๋ฉ€์—ˆ์Œ
์–ด๋–ป๊ฒŒ ํ•  ๊ฑด์ง€ ์ƒ๊ฐ๊ณผ ์ •๋ฆฌ๊ฐ€ ๋˜์–ด๋„, ๊ทธ๊ฒƒ์„ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ์ง€ ๋ชปํ•˜๋ฉด ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์—†๋‹คใ… ใ… 
๋ณ€์ˆ˜๋ฅผ ์–ด๋””์—์„œ ์„ ์–ธํ•ด์•ผ ํ•  ๊ฒƒ์ธ์ง€ ์ž˜ ์ƒ๊ฐํ•ด๋ณด์ž. (์ด๋ฒˆ ๋ฌธ์ œ๋กœ ์˜ˆ๋ฅผ ๋“ค๋ฉด sum๊ณผ count)

 

728x90