반응형
문제
https://www.acmicpc.net/problem/1522
풀이
첫째 줄에 필요한 교환의 회수의 최솟값을 출력한다.
순회하면서 외부 a갯수와 내부 b갯수를 체크한다 → 순회하며 계산을 쉽게 하기위해 문자열을 붙였다.
b를 교환하게 되는 최소 교환 횟수를 업데이트하고 최종 출력한다.
소스 코드
const filename =
process.platform === "linux" ? "/dev/stdin" : "./test-input.txt";
const input = require("fs")
.readFileSync(filename)
.toString()
.trim()
.split("\n");
const str = input[0].trim();
const cnt = (str.match(/a/g) || []).length;
const circle = str + str;
let answer = Number.MAX_SAFE_INTEGER;
for (let i = 0; i < circle.length - cnt; i++) {
const temp = circle.slice(i, i + cnt);
answer = Math.min(answer, (temp.match(/b/g) || []).length);
}
console.log(answer);
반응형
'개발 > 알고리즘' 카테고리의 다른 글
백준(BOJ) 1008 A/B (0) | 2024.01.14 |
---|---|
백준(BOJ) 10998 AxB (0) | 2024.01.13 |
백준(BOJ) 1001 A-B (0) | 2024.01.12 |
백준(BOJ) 1000 A+B (0) | 2024.01.11 |
백준(BOJ) 2557 Hello World (0) | 2024.01.10 |
댓글