function moreThanHalf(nums) {
// 여기에 코드를 작성해주세요.
let answer = 0;
let count = 0;
for (let x of nums) {
if (count === 0) {
answer = x;
count++;
} else {
(x === answer) ? count++ : count--;
}
}
return answer;
}
해설
res = 0 , count = 0 으로 초기화 시키기
for..of 문법을 사용한다. for..of는 enumerable(반복되는 열거가능한) 속성을 가지고있는 객체에 대해서 반복 할 수 있다. (array, map, set, string)
count가 0일 때, res는 num of nums(처음에는 nums배열의 0번째 인덱스가 됨)으로 초기화가 될 것이고, count는 1이 증가한다.
만약 count가 0이 아닌 경우, num값이 res값과 같으면 count는 1이 증가하게 되고, num값이 res값과 같지 않으면 카운트는 -1만큼 감소할 것 입니다.
즉, count가 줄어들어서 0이되면 다시 res값에 num of nums값이 초기화 되니 그럼 그걸로 다시 비교하게 될 것이다.
댓글