[CodeKata] moreThanHalf 함수 구현하기
글 작성자: 개발자 올라프
문제
숫자로 이루어진 배열인 nums를 인자로 전달한다. 숫자중에서 과반수가 넘은 숫자를 반환해주세요.
nums 배열의 길이는 무조건 2개 이상으로 가정한다.
ex.
nums = [3, 2, 3] => return 3
nums = [2, 2, 1, 1, 1, 2, 2] => return 2
function moreThanHalf(nums) {
const result = {};
nums.map(item => {
if(result[item]) {
return result[item] = result[item] + 1;
} else {
return result[item] = 1;
}
})
for(let i in result) {
if(result[i] > (nums.length/2)) {
return Number(x);
}
}
}
객체를 생성해서 nums 배열에 담긴 숫자 값들을 아래와 같은 키와 값으로 객체에 담고자 하였다.
즉 [1, 1, 1, 1, 1, 2, 2, 4, 7, 8]와 같은 숫자가 배열에 담겨 있다면
이와 같이 객체에 담겨 있다면 문제 풀이가 쉬울 것이라 생각하였다.
nums.map(item => {
if(result[item]) {
return result[item] = result[item] + 1;
} else {
return result[item] = 1;
}
})
map을 사용하여 result[item]으로 객체의 값들을 key값으로 가져왔고, 기존에 없던 key라면 1을 할당하고, 기존에 있는 key라면 1씩 더하는 로직을 생각했다.
for(let i in result) {
if(result[i] > (nums.length/2)) {
return Number(x);
}
}
이후에 과반수라는 글 정의를 알아보면 '절반을 넘는 수'를 의미한다. 그래서 기존의 배열인 nums의 길이를 구하여(nums.length) 절반으로 나눈 후, 이 값보다 큰 값을 가지고 있는 key값을 리턴하도록 했다.
'⭐️ Memory > 교육수강 회고' 카테고리의 다른 글
[CodeKata] topK 함수 구현하기 (0) | 2022.05.21 |
---|---|
[CodeKata] isValid 함수 구현하기 (0) | 2022.05.19 |
[CodeKata] romanToNum 함수 구현하기 (0) | 2022.05.16 |
React 댓글기능 구현하기 (1) | 2022.05.15 |
위코드 3주차 회고 - React (0) | 2022.05.15 |
댓글
이 글 공유하기
다른 글
-
[CodeKata] topK 함수 구현하기
[CodeKata] topK 함수 구현하기
2022.05.21 -
[CodeKata] isValid 함수 구현하기
[CodeKata] isValid 함수 구현하기
2022.05.19 -
[CodeKata] romanToNum 함수 구현하기
[CodeKata] romanToNum 함수 구현하기
2022.05.16 -
React 댓글기능 구현하기
React 댓글기능 구현하기
2022.05.15