자료구조 및 알고리즘/JavaScript Practice

JS Practice) 프로그래머스 : 머쓱이 보다 키 큰 사람 / 피자 나눠 먹기(3) / 배열 원소의 길이 / 점의 위치 구하기 / 짝수 홀수 개수

Ryomi 2023. 2. 27. 13:02
728x90
반응형

 

// 최종수정 23.03.04

 

1. 머쓱이 보다 키 큰 사람

: 반 친구들의 키 배열과 머쓱이 키를 인수로 받아 머쓱이 보다 키 큰 사람의 수 return

- 내가 짠 코드

function solution(array, height) {
    var answer = 0;
    for(let i=0; i< array.length; i++) {
        if(array[i] > height){
            answer++
        }
    }
    return answer;
}


function solution(array, height) {
    return array.filter(i => i > height).length
}

 

 

2. 피자 나눠 먹기(3)

: 피자가게는 피자를 2~10 조각까지 원하는 조각 수로 잘라줌. 사람수 n과 조각수 slice가 주어질 때, 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지 return

- 내가 짠 코드

// 전
function solution(slice, n) {
    var answer = 0;
    if(slice >= n) {
        answer = 1;
    } else {
        for(let i=1; i<=n; i++) {
            if(n%slice === 0) {
                answer = n/slice
            } else {
                answer = parseInt(n/slice) + 1
            }
        }
    }       
    return answer;
}


// 후
function solution (slice, n) {
    return Math.ceil(n/slice)
}

 

 

3. 배열 원소의 길이

: 문자열 배열 strlist가 매개변수로 주어질 때, 각 원소 길이를 담은 배열 반환

- 내가 짠 코드

// 전
function solution(strlist) {
    var answer = [];
    for (let i=0; i<strlist.length; i++) {
        answer.push(strlist[i].length)
    }
    return answer;
}


// 후
function solution(strlist) {
    return strlist.map((el) => el.length)
}

 

 

4. 점의 위치 구하기

: x, y 좌표가 주어질 때, 사분면의 속하는 위치 반환

- 내가 짠 코드

function solution(dot) {
    var answer = 0;
    if(dot[0] > 0){
        if(dot[1] > 0) {
            return 1
        } else {
            return 4
        }
    } else {
        if(dot[1] > 0) {
            return 2
        } else {
            return 3
        }
    }
    return answer;
}

- solution

function solution(dot) {
    const [num,num2] = dot;
    const check = num * num2 > 0;
    return num > 0 ? (check ? 1 : 4) : (check ? 3 : 2);
}

 

 

5. 짝수 홀수 개수

: 배열에서 짝수와 홀수의 갯수를 요소로 가진 배열 반환

- 내가 짠 코드

function solution(num_list) {
    let even = num_list.filter(n => n%2 === 0)
    return [even.length, num_list.length - even.length]
}

- solution

function solution(num_list) {
    var answer = [0,0];

    for(let a of num_list){
        answer[a%2] += 1
    }

    return answer;
}

 

 

728x90
반응형