BOJ[1475] - 방 번호 by JavaScript
방 번호
문제
언어
- JavaScript
순서도
- 방 번호의 개수 세기 (이 때, 6 번과 9 번은 함께 세기)
- 최소로 필요한 세트의 개수 계산하기
문제 풀이 step 1
- 필요한 세트의 개수를 계산해서 출력하는 문제입니다.
- 이 때, 6 번과 9 번은 서로 뒤집어서 사용할 수 있기 때문에 같은 종류라고 봐도 무방합니다. 따라서 같이 세줍니다.
- 그리고 한 세트에 6 번과 9 번 각각 한 개씩 있을텐데, 둘을 같은 종류라고 본다면 같은 종류의 플라스틱 숫자가 2 개라고 볼 수 있습니다.
- 그래서 문제를 풀 때 간편하게 생각해서 9 라는 숫자는 없다고 생각하고 6 이 2 개라고 생각하고 풀면 쉽게 풀 수 있습니다.
- 즉,
한 세트 = [0, 1, 2, 3, 4, 5, 6, 6, 7, 8]이렇게 볼 수 있는 것입니다.
- 즉,
소스 코드
const input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const solution = (input) => {
const n = input[0].split("").map(Number);
let max = 0;
const arr = Array(9).fill(0);
// 1. 방 번호의 개수 세기 (이 때, 6 번과 9 번은 함께 세기)
for (let i = 0; i < n.length; i++) {
if (n[i] === 9) arr[6] += 1;
else arr[n[i]] += 1;
if (n[i] !== 6 && n[i] !== 9) {
max = Math.max(max, arr[n[i]]);
}
}
// 2. 최소로 필요한 세트의 개수 계산하기
return Math.max(max, Math.round(arr[6] / 2));
};
console.log(solution(input));