728x90
나의 풀이
pass 나머지 구하기 https://verdantjuly.tistory.com/74
pass 중앙값 구하기 https://verdantjuly.tistory.com/116
fail 최빈값 구하기 https://verdantjuly.tistory.com/80
pass 짝수는 싫어요 https://verdantjuly.tistory.com/117
인상적인 풀이
// sort 이용 하지 않고 중간 값 구하기
function solution(array) {
let arrayCnt = 0;
let newArray = [];
while (arrayCnt < array.length) {
let minNumber = 1000;
//배열에서 최소값을 찾는 것
let cnt = 0;
while (cnt < array.length) {
if (minNumber > array[cnt]) {
minNumber = array[cnt];
}
cnt = cnt + 1;
}
//minNumber = 최소값
newArray.push(minNumber);
let cnt2 = 0;
while (cnt2 < array.length) {
if (minNumber === array[cnt2]) {
array[cnt2] = 1000;
break;
}
cnt2 = cnt2 + 1;
}
arrayCnt = arrayCnt + 1;
}
return newArray[Math.floor(array.length / 2)]
}
//1.정렬
//1-1. 배열 중 가장 작은 값 찾기
//1-2. 찾으면 새 배열에 넣기
//1-3 원래 배열에 찾은 값은 지운다
//1-4 만약 원래 배열 길이만큼 반복했으면 끝낸다 아니면 1-1로
//2. 가운데 값 꺼내기 (편집됨)
//중앙값
let array = [1,5,3,8,4];
for(let i=1; i<array.length-1; i++){
let idx=i;
for(let j=i+1; j<array.length; j++){
if(array[idx]>array[j])idx=j;
console.log(‘array[idx] : ’,array[idx]);
console.log(‘array[j] : ‘,array[j]);
console.log(‘-’.repeat(40));
}
let tmp=array[i];
array[i]=array[idx];
array[idx]=tmp;
}
//최빈값
let array = [1,2,3,3,3,4];
function solution(array) {
let m = new Map();
array.forEach(v=>{
if(m.has(v)){
m.set(v,m.get(v)+1);
}else{
m.set(v,1);
}
});
let tmp = 0;
let answer = 0;
m.forEach((v,k)=>{
if(v>tmp){
answer=k;
tmp=v;
}else if(v==tmp){
answer=-1;
}
})
return answer;
}
solution(array);
'verdantjuly > 코딩테스트' 카테고리의 다른 글
프로그래머스 스터디 A반 20230531 Day4 (0) | 2023.05.31 |
---|---|
프로그래머스 코딩 테스트 입문 : 피자 나눠 먹기 (3) (javascript, 20230531) (0) | 2023.05.31 |
프로그래머스 코딩테스트 입문 : 짝수는 싫어요(javascript, 20230527) (0) | 2023.05.27 |
프로그래머스 코딩테스트 입문 : 중앙값 구하기 (javascript, 20230527) (0) | 2023.05.27 |
프로그래머스 코딩테스트 입문 : 피자 나눠 먹기 (2) (0) | 2023.05.27 |