알고리즘 풀이

[JAVASCRIPT] 백준 1439번 문제 풀이

Lv1_junior_dev 2023. 1. 31. 19:38

❗ 풀이

let input = require('fs').readFileSync('dev/stdin').toString().trim().split('');

let array0 = [];
let array1 = [];
let string = "";

function solution(min_num, max_num, array){
for (let i = 0; i < input.length; i++) {
    if (input[i] === min_num) {
        string += input[i];
        if (input[i + 1] === max_num || input[i + 1] === undefined) {
            array.push(string);
            string = "";
        }
    }
}
}

solution("0","1",array0)
solution("1","0",array1)

console.log(Math.min(array0.length, array1.length));

1. 0을 뒤집는게 빠른지 1을 뒤집는게 빠른지 확인할 빈배열, 문자열을 합치기 위한 변수 생성

2. solution 함수안에 있는 반복문에서는 input의 길이만큼 반복하고 min_num이 0이면 0 문자열을 합쳐서 array0 배열에 넣고 합친 문자열 초기화

3. min_num이 1이면 문자열 1을 합쳐서 array1 배열에 넣고 합친 문자열 초기화

4. 이렇게하면 0을 뒤집었을 때와 1을 뒤집었을 때 횟수 값이 나오고 Math.min을 통해 작은 길이의 수를 출력