[JS/백준]{그리디}(20365) 블로그2

202210월 02

백준 문제 링크

문제 설명

이 문제 풀이법은 B, R을 split으로 둘로 나눈다음에 더 많이 칠해야하는 컬러는

맨 처음에 전체적으로 딱 한번만 실행되게 한다 그리고 더 적게 칠해야하는 컬러는

하나씩 칠하면된다.

하지만 예외가 있는데 BBBRRR 이런경우는 위 방식대로하면 4번칠해야한다 2번칠하면 되는데

그래서 이렇게 딱 2개로 나뉘는 경우만 2를 출력하고 종료한다.


코드

const line = require("fs").readFileSync("./input.txt", "utf8");
let inputData = line.trim().split("\n");

let blueArr = inputData[1].split("R").filter((val) => val != "");
let redArr = inputData[1].split("B").filter((val) => val != "");

if (blueArr.length === 1 && redArr.length === 1) {
  console.log(2);
  process.exit(0);
}

let result = 0;
if (blueArr.length > redArr.length) {
  result += redArr.length + 1;
} else {
  result += blueArr.length + 1;
}
console.log(result);