코딩 공부/코딩테스트

자바스크립트 코딩테스트 입문 (4)

천서리 2023. 5. 19. 21:43
QUOTE THE DAY

“ 당신이 6개월 이상 한 번도 보지 않은 코드는 다른 사람이 다시 만드는 게 훨씬 더 나을 수 있다. ”

- 이글슨 (Eagleson)
반응형

코딩테스트 입문 Day 4 수학, 배열

출처 : https://programmers.co.kr/

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


피자 나눠 먹기 (1)

문제

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

 

 

제한사항

  • 1 ≤ n ≤ 100

 

입출력 예

n result
7 1
1 1
15 3

 

 

입출력 예 설명

 

입출력 예 #1

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

입출력 예 #2

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

입출력 예 #3

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

 

solution.js

function solution(n) {
    var answer = Math.ceil(n / 7);
    return answer;
}
  1. Math.ceil(n / 7): 주어진 사람의 수 n을 7로 나눈 몫을 계산합니다. Math.ceil() 함수를 사용하여 올림을 수행합니다. 이는 피자를 7조각으로 자르고, 한 조각 이상을 먹을 수 있는 사람 수를 계산하는 것과 동일합니다.
  2. var answer = Math.ceil(n / 7);: 계산된 몫을 변수 answer에 저장합니다.
  3. return answer;: 계산된 값을 반환합니다.

피자 나눠 먹기 (2)

문제

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

 

 

제한사항

  • 1 ≤ n ≤ 100

 

입출력 예

n result
6 1
10 5
4 2

 

 

입출력 예 설명

 

입출력 예 #1

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

입출력 예 #2

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

입출력 예 #3

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

 

solution.js

function solution(n) {
    var answer = 0;
    let pizzaCount = 1;
    while(true){
        if(pizzaCount * 6 % n ===0){
            return pizzaCount;
        }
        pizzaCount++;
    }
    return answer;
}
  1. var answer = 0;: 반환할 값을 초기화합니다. (사용되지 않습니다.)
  2. let pizzaCount = 1;: 피자의 판 수를 나타내는 변수 pizzaCount를 초기화합니다.
  3. while(true) { ... }: 무한 루프를 시작합니다.
  4. if(pizzaCount * 6 % n === 0) { ... }: 만약 피자 판 수 pizzaCount와 사람의 수 n을 곱한 값이 n으로 나누어 떨어진다면 조건을 만족하는 것입니다. 즉, 해당 피자 판 수로 피자를 나누어 먹을 수 있는 경우입니다.
  5. return pizzaCount;: 조건을 만족하는 피자 판 수를 반환하고 함수를 종료합니다.
  6. pizzaCount++;: 조건을 만족하지 않는 경우, 피자 판 수를 1씩 증가시킵니다.

피자 나눠 먹기 (3)

문제

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

 

 

제한사항

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

 

입출력 예

slice n result
7 10 2
4 12 3

 

 

입출력 예 설명

 

입출력 예 #1

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

입출력 예 #2

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

 

solution.js

function solution(slice, n) {
    var answer = Math.ceil(n / slice);
    return answer;
}
  1. Math.ceil(n / slice): 사람의 수 n을 피자의 조각 수(slice)로 나눈 몫을 올림하여 필요한 피자의 판 수를 계산합니다. 이는 한 사람당 최소 한 조각 이상을 먹기 위해 필요한 피자의 판 수를 구하는 것과 동일합니다.
  2. var answer = Math.ceil(n / slice);: 계산된 몫을 변수 answer에 저장합니다.
  3. return answer;: 계산된 값을 반환합니다.

배열의 평균

문제

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

 

 

제한사항

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

 

입출력 예

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

 

 

입출력 예 설명

 

입출력 예 #1

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

입출력 예 #2

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

 

solution.js

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;
}
  1. var answer = 0;: 반환할 값을 초기화합니다. (사용되지 않습니다.)
  2. let sum = 0;: 배열의 총합을 저장할 변수 sum을 초기화합니다.
  3. for(let i=0; i<numbers.length; i++) { ... }: 주어진 숫자 배열 numbers를 순회합니다.
  4. sum = sum + numbers[i];: 각 요소를 sum에 더해줍니다. 이를 통해 배열의 총합을 계산합니다.
  5. return sum / numbers.length;: 배열의 총합을 배열의 길이로 나눈 값을 반환합니다. 이는 배열의 평균을 구하는 것과 동일합니다.

 

반응형
Adventure Time - BMO