본문 바로가기
프로그래머스 코딩 테스트

프로그래머스 : JavaScript 알고리즘 100일 챌린지 4일차

by dongjin6539 2023. 5. 19.
728x90
반응형

프로그래머스 : JavaScript 알고리즘 100일 챌린지 4일차

 

코딩테스트 입문 Day4

 

 

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

function solution(n) {
    var answer = 0;
    return answer;
}

길라잡이

  • 변수 answer의 데이터를 수정해서 답을 구해보세요.
  • 예시
n result
7 1
1 1
15 3

 

답 확인하기
function solution(n) {
    var answer = Math.ceil(n / 7);
    return answer;
}

 

해설 확인하기

이 함수는 주어진 수 n을 7로 나눈 후 올림한 값을 반환하는 기능을 수행합니다.

함수의 동작을 자세히 설명하겠습니다.

answer 변수에 주어진 수 n을 7로 나눈 후 올림한 결과를 할당합니다. Math.ceil() 함수를 사용하여 올림 연산을 수행합니다.

answer 값을 반환하여 결과를 출력합니다.

결과적으로, 함수는 주어진 수 n을 7로 나눈 후 올림한 값을 반환합니다. 이는 n을 7로 나눈 후 올림하여 필요한 그룹의 수를 구하는 것을 의미할 수 있습니다.

 

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

function solution(n) {
    var answer = 0;
    return answer;
}

길라잡이

  • 변수 answer의 데이터를 수정해서 답을 구해보세요.
  • 예시
n result
6 1
10 5
4 2

 

답 확인하기
function solution(n) {
    var answer = 0;
    let pizzaCount = 1;
    while(true){
        if(pizzaCount * 6 % n ===0){
            return pizzaCount;
        }
        pizzaCount++;
    }
    return answer;
}

 

해설 확인하기

이 함수는 주어진 수 n에 대해 피자를 주문할 때 필요한 최소한의 피자 개수를 반환하는 기능을 수행합니다.

함수의 동작을 자세히 설명하겠습니다.

answer 변수를 0으로 초기화합니다. 이 변수는 최소한의 피자 개수를 저장할 것입니다.

pizzaCount 변수를 1로 초기화합니다. 이 변수는 현재 피자 개수를 나타냅니다.

while 루프를 사용하여 무한히 반복합니다.

피자 개수인 pizzaCount를 6으로 곱한 후 n으로 나눈 나머지가 0인지 확인합니다. 즉, pizzaCount * 6이 n의 배수인지 검사합니다.

만약 나머지가 0이라면, pizzaCount를 반환하여 필요한 최소한의 피자 개수를 출력합니다.

나머지가 0이 아니라면, pizzaCount를 1 증가시킨 후 다음 반복을 진행합니다.

while 루프가 무한히 반복하므로, 반복이 끝날 수 없습니다. 따라서 마지막 줄의 return answer;는 도달할 수 없는 코드입니다.

결과적으로, 함수는 주어진 수 n에 대해 피자를 주문할 때 필요한 최소한의 피자 개수를 반환합니다. 피자의 개수는 6으로 곱한 값이 n의 배수가 되는 최소값입니다.

 

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

function solution(slice, n) {
    var answer = 0;
    return answer;
}

길라잡이

  • 변수 answer의 데이터를 수정해서 답을 구해보세요.
  • 예시
slice n result
7 10 2
4 12 3

 

답 확인하기
function solution(slice, n) {
    var answer = Math.ceil(n / slice);
    return answer;
}

 

해설 확인하기

이 함수는 주어진 수 n을 slice로 나눈 후 올림한 값을 반환하는 기능을 수행합니다.

함수의 동작을 자세히 설명하겠습니다.

answer 변수에 주어진 수 n을 slice로 나눈 후 올림한 결과를 할당합니다. Math.ceil() 함수를 사용하여 올림 연산을 수행합니다.

answer 값을 반환하여 결과를 출력합니다.

결과적으로, 함수는 주어진 수 n을 slice로 나눈 후 올림한 값을 반환합니다. 이는 n을 slice로 나눈 후 필요한 작업의 횟수를 구하는 것을 의미할 수 있습니다.

 

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

function solution(numbers) {
    var answer = 0;
    return answer;
}

길라잡이

  • 변수 answer의 데이터를 수정해서 답을 구해보세요.
  • 예시
numbers result
[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

 

답 확인하기
function solution(numbers) {
    var answer = 0;
    
    // 배열의 총합 구하기
    let sum = 0;
    for(let i=0; i<numbers.length; i++){
        sum = sum + numbers[i];
    }
    return sum / numbers.length;
}

 

해설 확인하기

이 함수는 주어진 배열 numbers의 평균값을 계산하여 반환하는 기능을 수행합니다.

함수의 동작을 자세히 설명하겠습니다.

answer 변수를 0으로 초기화합니다. 이 변수는 평균값을 저장할 것입니다.

sum 변수를 0으로 초기화합니다. 이 변수는 배열의 총합을 나타낼 것입니다.

for 루프를 사용하여 배열의 각 요소를 순회합니다.

sum에 현재 요소를 더합니다. 이를 통해 배열의 모든 요소의 합을 구합니다.

sum을 배열의 길이로 나눈 후 결과를 answer에 할당합니다. 이는 배열의 평균값을 계산하는 것을 의미합니다.

answer 값을 반환하여 평균값을 출력합니다.

결과적으로, 함수는 주어진 배열 numbers의 평균값을 계산하여 반환합니다. 이를 위해 배열의 총합을 구하고 배열의 길이로 나눈 값을 반환합니다.

728x90
반응형