알고리즘
[CodeKata] Week 2 - Day 2 (JavaScript)
프린벼르
2022. 2. 26. 21:40
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값이 초기화 되니 그럼 그걸로 다시 비교하게 될 것이다.