숫자로 이루어진 배열에서 과반수가 넘는 숫자를 반환하자.
일단 들어온 nums 배열을 오름차순으로 정렬 (sort())해주고
몇가지의 배열들을 변수로 설정해 준다
그리고 비교의 기준이 될 수 있게 set 함수를 이용해 변수를 (checkArr) 설정한다.
반복문과 lastIndexOf()
와 indexOf()
를 이용해서 index를 내보내
그 두 값의 차액을 새로운 배열에 넣어준다.
마지막 결과값에 배열 값중 가장 큰 값을 내보내고,
정렬된 배열에 해당 값에 해당하는 인덱스 숫자를 내보내서
정답을 확인할 수 있었다.
배열에서 과반수 이상이 되는 데이터를 내보내는 것이기 때문에,
전체 배열을 반으로 나눈 값을 먼저 저장한다.
그리고 값을 반복문으로 돌면서 비교해주면서 count에 하나씩 더해준다.
그리고 절반 값과 count 값을 비교해서 count가 크다면
count 값에 해당하는 인덱스 값을 가져온다.
과반수라는 부분을 이용했던 점이 내가 짰던 코드와 달랐던 부분이다.
거기다가 함수를 최소화 하면서 값을 낼 수 있던 점도
계속해서 고려해 보아야 할 부분인 것 같다.