본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 13413/javascript] 오셀로 재배치

by tokkiC 2022. 8. 22.

인접한 문자끼리만 교환가능 한 줄 알고 여러번 틀려서 엥했던 문제이다

교환 위치는 임의이니 그냥 초기와 비교 대상의 각 문자를 비교하여

비교대상과 다른 경우일때의 각 문자의 수를 카운트한다

w와 b의 수를 각각 세므로, 더 큰 수일 경우의 카운트가 정답이 된다

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

 

13413번: 오셀로 재배치

로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검

www.acmicpc.net

let input = [];

const readline = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

readline.on("line", (line) => {
  input.push(line);
});

readline.on("close", () => {
  solution(input);
  process.exit();
});

const solution = (inp) => {
  let n = Number(inp[0]);
  let ans = [];
  for (let i = 0; i < n; i++) {
    // 각 오셀로별 주어진 조건
    let bef = inp[i * 3 + 2];
    let aft = inp[i * 3 + 3];
    let strlen = bef.length;
    let bcnt = 0;
    let wcnt = 0;

    for (let j = 0; j < strlen; j++) {
      if (bef[j] !== aft[j]) {
        if (bef[j] === "B") {
          bcnt++;
        } else {
          wcnt++;
        }
      }
    }
    ans = Math.max(bcnt, wcnt);
    console.log(ans);
  }
};

댓글