🌠 문제

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • 0 ≤ numbers의 원소 ≤ 1,000
  • 1 ≤ numbers의 길이 ≤ 100
  • 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.

🌠 입출력 예

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5.5
[89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] 94.0

🌠 입출력 예 설명

입출력 예 #1

  • numbers의 원소들의 평균 값은 5.5입니다.

입출력 예 #2

  • numbers의 원소들의 평균 값은 94.0입니다.

🧞 풀이

function solution(numbers) {
    let s = 0;
    for (let i = 0; i < numbers.length; i++) {
        s += numbers[i];
    }
    return s / numbers.length;
}

🌠 문제

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

🌠 제한사항

  • 2 ≤ slice ≤ 10
  • 1 ≤ n ≤ 100

🌠 입출력 예

7 10 2
4 12 3

🌠 입출력 예 설명

입출력 예 #1

  • 10명이 7조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 2판을 시켜야 합니다.

입출력 예 #2

  • 12명이 4조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 3판을 시켜야 합니다.

🧞 풀이

function solution(slice, n) {
    let q = parseInt(n / slice);
    let r = n % slice;
    
    if (r > 0) {
        return q + 1;
    } else {
        return q;
    }
}

🌠 문제

머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

🌠 제한사항

  • 1 ≤ n ≤ 100

🌠 입출력 예

6 1
10 5
4 2

🌠 입출력 예 설명

입출력 예 #1

  • 6명이 모두 같은 양을 먹기 위해 한 판을 시켜야 피자가 6조각으로 모두 한 조각씩 먹을 수 있습니다.

입출력 예 #2

  • 10명이 모두 같은 양을 먹기 위해 최소 5판을 시켜야 피자가 30조각으로 모두 세 조각씩 먹을 수 있습니다.

입출력 예 #3

  • 4명이 모두 같은 양을 먹기 위해 최소 2판을 시키면 피자가 12조각으로 모두 세 조각씩 먹을 수 있습니다.

🧞 풀이

// 최소 공배수를 구하는 문제

function solution(n) {
    // 6조각으로 정해져 있기 때문에, 그냥 6, 3, 2로 나눠지는지 확인해봐도 될 것 같음
    let newN = 0;
    
    if (n % 6 === 0) {
        newN = n / 6;
    } else if ( n % 3 === 0) {
        newN = n / 3;
    } else if ( n % 2 === 0) {
        newN = n / 2;
    } else {
        newN = n;
    }
    
    return newN;
}

🌠 문제

머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.

🌠 제한사항

  • 1 ≤ n ≤ 100

🌠 입출력 예

7 1
1 1
15 3

🌠 입출력 예 설명

입출력 예 #1

  • 7명이 최소 한 조각씩 먹기 위해서 최소 1판이 필요합니다.

입출력 예 #2

  • 1명은 최소 한 조각을 먹기 위해 1판이 필요합니다.

입출력 예 #3

  • 15명이 최소 한 조각씩 먹기 위해서 최소 3판이 필요합니다.

🧞 풀이

function solution(n) {
    const quotinent = parseInt(n / 7); //몫
    const residue = n % 7; // 나머지
    if (residue > 0) { // 나머지가 0보다 크면
        return (quotinent + 1); // 몫 + 1 리턴
    } else { return (quotinent); } // 몫 리턴
}

🌠 문제

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

🌠 제한사항

  • 0 < array의 길이 < 100
  • 0 ≤ array의 원소 < 1000

🌠 입출력 예

[1, 2, 3, 3, 3, 4] 3
[1, 1, 2, 2] -1
[1] 1

🌠 입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 3, 3, 4]에서 1은 1개 2는 1개 3은 3개 4는 1개로 최빈값은 3입니다.

입출력 예 #2

  • [1, 1, 2, 2]에서 1은 2개 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return 합니다.

입출력 예 #3

  • [1]에는 1만 있으므로 최빈값은 1입니다.

🧞 풀이

function solution(array) {
    // array의 최댓값만큼의 길이를 가진 새로운 배열 생성
    let newArray = new Array(Math.max(...array)+1).fill(0);
    // array 반복문을 통해, 해당 값에 해당하는 index의 값 += 1
    for (let i = 0; i < array.length; i++) {
        newArray[array[i]] += 1
    }
    // newArray의 최댓값에 해당 하는 index 출력
    // 만약 indexOf와 lastIndexOf가 지칭하는 값이 같으면, -1 출력 (중복인 경우 확인)
    if (newArray.indexOf(Math.max(...newArray)) !== newArray.lastIndexOf(Math.max(...newArray))) {
        return -1
    } else {
        return newArray.indexOf(Math.max(...newArray));
    };
}

🌠 문제

중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.

🌠 제한사항

  • array의 길이는 홀수입니다.
  • 0 < array의 길이 < 100
  • -1,000 < array의 원소 < 1,000

🌠 입출력 예 

[1, 2, 7, 10, 11] 7
[9, -1, 0] 0

🌠 입출력 예 설명

입출력 예 #1

  • 본문과 동일합니다.

입출력 예 #2

  • 9, -1, 0을 오름차순 정렬하면 -1, 0, 9이고 가장 중앙에 위치하는 값은 0입니다.

🧞 풀이

function solution(array) {
	// 오름차순 정렬한 새로운 배열을 newArray에 할당
    let newArray = array.sort(function(a, b) { 
    return a - b});
    
    // 배열의 길이를 index에 할당
    const index = array.length;
    
    // 배열의 길이를 2로 나눈 몫의 정수값을 인덱스에 넣어 해당 값 출력
    return newArray[parseInt(index/2)];
}

🌠  문제

정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • 0 < num1 ≤ 100
  • 0 < num2 ≤ 100

🌠 입출력 예

3 2 1
10 5 0

 

🌠 입출력 예 설명

입출력 예 #1

  • num1이 3, num2가 2이므로 3을 2로 나눈 나머지 1을 return 합니다.

입출력 예 #2

  • num1이 10, num2가 5이므로 10을 5로 나눈 나머지 0을 return 합니다.

🧞 풀이

function solution(num1, num2) {
    return num1 % num2
}

🌠 문제

정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • -10,000 ≤ numbers의 원소 ≤ 10,000
  • 1 ≤ numbers의 길이 ≤ 1,000

🌠 입출력 예

[1, 2, 3, 4, 5] [2, 4, 6, 8, 10]
[1, 2, 100, -99, 1, 2, 3] [2, 4, 200, -198, 2, 4, 6]

🌠 입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 4, 5]의 각 원소에 두배를 한 배열 [2, 4, 6, 8, 10]을 return합니다.

입출력 예 #2

  • [1, 2, 100, -99, 1, 2, 3]의 각 원소에 두배를 한 배열 [2, 4, 200, -198, 2, 4, 6]을 return합니다.

🧞 풀이

function solution(numbers) {
    let newNumbers = numbers.map(function(element){
        return element *2;
    });
    return newNumbers;
}

// map 함수를 쓰면, 반복문을 돌리는 대신 배열 각 원소에 해당 함수를 적용할 수 있다.

🌠 문제

첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

🌠 제한사항

  • 0 <numer1, denom1, numer2, denom2 < 1,000

🌠 입출력 예


1 2 3 4 [5, 4]
9 2 1 3 [29, 6]

🌠 입출력 예 설명

입출력 예 #1

  • 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.

입출력 예 #2

  • 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.

🧞 풀이

function solution(numer1, denom1, numer2, denom2) {
    let a = numer1 * denom2 + numer2 * denom1
    let b = denom1 * denom2
    let maximum = 1
    
    for (let i = 1; i <= a; i++) {
        if(a%i === 0 && b%i === 0) {
            maximum = i
        }
    }
    return [a / maximum, b / maximum]
}

// 최대 공약수를 구하고 해당 값으로 분자, 분모를 나눠서 출력할 것

+ Recent posts