인접한 문자끼리만 교환가능 한 줄 알고 여러번 틀려서 엥했던 문제이다
교환 위치는 임의이니 그냥 초기와 비교 대상의 각 문자를 비교하여
비교대상과 다른 경우일때의 각 문자의 수를 카운트한다
w와 b의 수를 각각 세므로, 더 큰 수일 경우의 카운트가 정답이 된다
https://www.acmicpc.net/problem/13413
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);
}
};
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 1026/javascript] 보물 (0) | 2022.08.24 |
---|---|
[백준 15654/javascript] N과 M (5) (0) | 2022.08.23 |
[백준 17413/javascript] 단어 뒤집기 2 (0) | 2022.08.21 |
[백준 11478/javascript] 서로 다른 부분 문자열의 개수 (0) | 2022.08.20 |
[백준 1463/javascript] 1로 만들기 (0) | 2022.08.19 |
댓글