시뮬레이션
에어팟
function solution(string) {
const input = string.split("\n");
const N = input[0];
const A = input[1].split(" ");
const drain = 2;
let currentPhone = 0;
let battery = 0;
let currentBattery = 0;
for (let i = 0; i < N; i++) {
if (A[i] !== currentPhone) {
battery += drain;
currentBattery = drain;
} else {
battery += currentBattery * 2;
currentBattery *= 2;
}
currentPhone = A[i];
if (battery >= 100) {
battery = 0;
currentPhone = 0;
currentBattery = 0;
}
}
return battery;
}
const string = `7
2 2 2 2 2 2 2`;
console.log(solution(string));
if (A[i] !== currentPhone) {
battery += drain;
currentBattery = drain;
} else {
battery += currentBattery * 2;
currentBattery *= 2;
}
이전 폰과 새로운 폰이 다르면 새로운 폰으로 바뀐 것이니 배터리 2퍼 소모 및 2퍼 소모 누적
그게 아니면 직전 배터리 소모량의 2배 소모, 전 배터리 소모량의 2배 소모 누적
if (battery >= 100) {
battery = 0;
currentPhone = 0;
currentBattery = 0;
}
누적 배터리 소모량 100퍼센트 이상이 될 시 배터리 0으로 초기화 , 누적 배터리 0 초기화, 핸드폰 연결 해제