코딩연습

[백준 알고리즘] Node.js 1439. 뒤집기

니 뽀 2023. 8. 10. 13:31

1. 문제

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

 

1439번: 뒤집기

다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모

www.acmicpc.net

 

2. 풀이

  • 0과 1로만 이루어진 문자열에 대해서 모든 숫자를 같게 만들기 위해 뒤집어야 하는 최소 횟수를 찾는 문제이다.
  • 0으로 나눈 배열과 1로 나눈 배열의 길이를 비교하여 작은 값을 출력해야겠다고 생각.
const inputs = require('fs').readFileSync('/dev/stdin').toString().trim();

// 0 으로 split 한 배열의 길이
const splitByZeroLength = inputs.split("0").filter(item => item !== '').length;

// 1로 split한 배열의 길이
const splitByOneLength = inputs.split("1").filter(item => item !== '').length;

// 최소값 출력
console.log(Math.min(splitByZeroLength, splitByOneLength));
  • "0", "1"로 한 이유는 테스트 케이스를 문자형태로 받았기 때문이고,
  • filter() 를 사용한 이유는 split()을 사용하게 되면 '' 형태로 받아지기 때문에 필요없는 '' 부분을 걸러내기 위함이다.