[프로그래머스] 수포자
16429 단어 algorithmJavaScriptJavaScript
자바스크립트의 소트 함수 사용하기
파이썬처럼 쉽게 소트되지 않는다. 소트되는 방법을 함수로 정의하는 과정이 필요하다.
오름차순 정렬
sortobj.sort((a,b) => {
return b[1] - a[1]
})
내림차순 정렬은 a, b 순서를 바꿔주면 된다.
전체 소스코드
function solution(answers) {
function supo1(idx) {
if (idx % 5 == 0) {
return 1
} else if (idx % 5 == 1) {
return 2
} else if (idx % 5 == 2) {
return 3
} else if (idx % 5 == 3) {
return 4
} else if (idx % 5 == 4) {
return 5
}
}
function supo2(idx) {
if (idx % 2 == 0) {
return 2
} else {
if (idx % 8 == 1) {
return 1
} else if (idx % 8 == 3) {
return 3
} else if (idx % 8 == 5) {
return 4
} else return 5
}
}
function supo3(idx) {
if (idx % 10 == 0 || idx % 10 == 1) {
return 3
} else if (idx % 10 == 2 || idx % 10 == 3) {
return 1
} else if (idx % 10 == 4 || idx % 10 == 5) {
return 2
} else if (idx % 10 == 6 || idx % 10 == 7) {
return 4
} else return 5
}
var answers = answers
var answer = [];
var checkbox = { 1: 0,2: 0,3: 0 }
answers.forEach((a, idx) => {
if (a == supo1(idx)) {
checkbox[1]++
}
if (a == supo2(idx)) {
checkbox[2]++
}
if (a == supo3(idx)) {
checkbox[3]++
}
})
var sortobj = []
for (var number in checkbox) {
sortobj.push([number, checkbox[number]])
}
sortobj.sort((a,b) => {
return b[1] - a[1]
})
var maxResult = sortobj[0][1]
sortobj.forEach(arr => {
if (arr[1] == maxResult) {
answer.push(Number(arr[0]))
}
})
answer.sort((a,b) => {return b[1]-a[1]})
return answer;
}
Author And Source
이 문제에 관하여([프로그래머스] 수포자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@unani92/프로그래머스-수포자-yac3pffm저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)