WeCode Kata Day 7

luneah·2021년 12월 7일
0

WeCode Kata

목록 보기
7/20
post-thumbnail

문제

숫자로 이루어진 배열인 nums를 인자로 전달한다. 숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환하라.

Ex)
nums = [3,2,3]
return 3

nums = [2,2,1,1,1,2,2]
return 2

nums = [3,2,3]
return 3

nums = [2,2,1,1,1,2,2]
return 2

가정) nums 배열의 길이는 무조건 2개 이상

Thinking Algorithm

  1. 숫자를 비교할 대상을 선정해줌 (nums의 0번째 요소)
  2. count를 0으로 초기화해줌
  3. for of 반복문 실행
    3-1. count가 0일 때
           1) 1을 num of nums로 초기화
           2) count를 +1 해줌
    3-2. count가 0이 아닐 때
           1) 1과 num이 같으면 count를 +1
           2) 1과 num이 다르면 count를 -1
  4. count가 줄어들어서 0이 되면 다시 1의 값에 num of nums값 초기화
    ㄴ 그걸로 다시 비교

Code

function moreThanHalf(nums) {
  let number = nums[0], count = 0;
    for (let num of nums) {
        if (count === 0) {
            number = num;
            count++;
        } else {
             (num === number) ? count++ : count--;
        }
    }
    return number;
}

💬 삼항연산자 사용해 코드 길이 단축

profile
하늘이의 개발 일기

0개의 댓글