프로그래머스 - Lv1. 실패율 / Object.entries() 본문
반응형
문제 - 실패율
function solution(N, stages) {
let obj = {}
// 객체로 정리
for(let i = 1 ; i <= N ; i ++ ){
for(let j = 0 ; j <= stages.length ; j++){
if(i===stages[j]){
obj[i] = (obj[i] || 0) +1
}
}
if(!obj[i]){
obj[i] = 0
}
}
let result = {...obj}
let leng = stages.length
// 복제한 result 객체에 실패율 저장
for(let i = 1 ; i < Object.keys(obj).length +1 ; i++){
result[i] = obj[i]/leng
leng -= obj[i]
}
console.log(result)
}
//{
// '1': 0.125,
// '2': 0.42857142857142855,
// '3': 0.5,
// '4': 0.5,
// '5': 0
//}
문제는 실패율을 내림 차순으로 정렬한 배열을 윈한다.
따라서, 해당 문제 해결을 위해 객체를 정렬하는 방법을 찾다가 Object.entries에 대해 알게 되었다.
Object.entries
해당 메소드는 객체가 가지고 있는 모든 데이터를 이중 배열 형태로 반환해준다.
// Object.entries() 예시
let obj = {a:1,b:3,c:2}
console.log(Object.entries(obj))
// [ [ 'a', 1 ], [ 'b', 3 ], [ 'c', 2 ] ]
이를 활용하면, 배열 관련 메서드를 사용하기 편해진다.
// sort 를 사용한 방식
let obj = {a:1,b:3,c:2}
console.log(Object.entries(obj).sort((a,b)=>a[1]-b[1]))
// [ [ 'a', 1 ], [ 'c', 2 ], [ 'b', 3 ] ]
위와 같은 방식을 통해 문제를 해결할 수 있었다.
반응형
'개발 > algorithm' 카테고리의 다른 글
프로그래머스 - Lv.2 N개의 최소공배수 (0) | 2023.02.26 |
---|---|
프로그래머스 - Lv.1 문자열과 영단어 / 정규표현식 간단한 활용 (대체) (0) | 2023.02.09 |
프로그래머스 - 100문제 풀이 기념 (0) | 2023.01.25 |
algorithm - 재귀함수 (0) | 2023.01.24 |
프로그래머스 - Lv.1 x만큼 간격이 있는 n개의 숫자 (1) | 2023.01.18 |
Comments