반응형

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120816

 

문제

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

 

 

제한사항

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

 

입출력 예

slice n result
7 10 2
4 12 3

 

풀이

 

1) 사람수를 피자 조각수로 나누었을 때,

2)  딱 떨어지면 사람 나누기 조각수 출력

3)  아니면 나누고 한판 더해주기

 

코드

function solution(slice, n) {
    if(n % slice == 0){
        return n / slice
    }else{
        return parseInt(n / slice + 1)
    }
}

 

다른 사람의 풀이

(윽 한대 맞음 1에서 봐놓고 또 사용 못한 바보!)

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

 

반응형
반응형

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120815

 

문제

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

 

 

제한사항

  • 1 ≤ n ≤ 100

 

입출력 예

n result
6 1
10 5
4 2

 

풀이

 

1) 피자 조각이 6판일때의 변수를 담아서

2)  while문을 통해서 true값이 나올때까지 반복

3) 인원수가 피자조각(6)으로 나누어 떨어질때까지 피자 주문 +6

4) 주문한 피자수의 나누기 6

 

코드

function solution(n) {
    let pizza = 6;
    while(pizza % n !== 0){
        // 0으로 나누어 떨어질때까지 피자 주문 +6
        pizza += 6
    }
    return pizza/6
}
반응형
반응형

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120813

 

문제

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

 

 

제한사항

  • 1 ≤ n ≤ 100

 

입출력 예

n result
7 1
1 1
15 3

 

풀이

 

1) n을 7조각으로 나눠서 나머지가 0 일 때,

2) 다시 7로 나눈 정수로 반환

3) 아닐 때, 7개 나누고 나머지 1 더해서 출력

 

코드

function solution(n) {
    return n % 7 === 0 ? parseInt(n/7) : parseInt(n/7) + 1 
}

 

다른 사람의 풀이

function solution(n) {
    return Math.ceil(n / 7)
}

.ceil() 이란 반올림 정수반환

 

 

반응형
반응형

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120813

 

문제

정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.

 

 

제한사항

  • 1 ≤ n ≤ 100

 

입출력 예

n result
10 [1, 3, 5, 7, 9]
15 [1, 3, 5, 7, 9, 11, 13, 15]

 

 

풀이

 

1) n까지 for문 돌려주기

2) 홀수인것들 찾아서 push

 

 

코드

function solution(n) {
    var answer = [];
    for(let i = 1; i <= n; i++){
        if(i % 2 !== 0){
            answer.push(i)
        }
    }
    return answer;
}
반응형
반응형

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120811

 

문제

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

 

 

제한사항

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

 

입출력 예

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

 

 

풀이

 

1) 오름차순 정렬 .sort(함수) => b-a는 내림차순 정렬

2) 인덱스 반으로 나눠서 정수로 변수에 담아주기

3) array의 index번째 출력

 

 

코드

function solution(array) {
    // 오름차순 정렬
    array.sort((a,b) => (a- b));
    // 인덱스 반으로 자르기
    let index = parseInt(array.length/2);
    // array의 index번째 출력
    return array[index]
}
반응형
반응형

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120824?language=javascript

 

문제

정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

 

 

제한사항

  • 1 ≤ num_list의 길이 ≤ 100
  • 0 ≤ num_list의 원소 ≤ 1,000

 

입출력 예

num_list result
[1, 2, 3, 4, 5] [2, 3]
[1, 3, 5, 7] [0, 4]

 

 

풀이

 

1) 짝수, 홀수 카운트 해줄 변수 생성

2) 짝주일때, 홀수일때 카운트 +

3) answer 배열에 담아주기

 

 

코드

function solution(num_list) {
    var answer = [];
    let even = 0;
    let odd = 0;
    for(i of num_list){
        if(i % 2 == 0){
            even++
        }else{
            odd++
        }
    }
    answer.push(even, odd)
    return answer;
}

 

 

 

다른 사람의 풀이

 

(영.. 이해가 애매하게 되는데.. 아래 해설 해주실수있는 똑똑이 구합니다.)

🎉 나눠지며 +1 이되는건 알았지만 짝, 홀 순서로 배열에 들어가는 이유가 너~~무 궁금했는데,

     나머지가 0이 되었을때 0번째 인덱스, 1이 되었을때 1번째 인덱스로 들어가는것!

function solution(num_list) {
    var answer = [0,0];
    // 짝수, 홀수 배열 저장소

    for(let a of num_list){
        // num_list에 있는 배열을 전부 a로 나타내기
        answer[a % 2] += 1
        // answer[a % 2] = answer[a % 2] + 1
    }

    return answer;
}
function solution(num_list) {
    const answer = [];
    let odd = 0;
    let even = 0;
    num_list.forEach(i => {
        i % 2 === 0 ? even++ : odd++;
    });
    answer.push(even, odd);
    return answer;
}
반응형
반응형

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120830

 

문제

머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.

 

 

제한사항

  • 0 < n < 1,000
  • n / 10 ≤ k < 1,000
  • 서비스로 받은 음료수는 모두 마십니다.

 

입출력 예

n k result
10 3 124,000
64 6 768,000

 

풀이

 

1) 10번당 하나 무료인 값을 정수로 받아서 free에 담아준다.

2) 양꼬치 n개 곱하기 12000

3) 음료수 갯수에 10번 먹은 횟수를 빼주고 곱하기 2000

4) 2)와 3)을 더해준다.

 

 

코드

function solution(n, k) {
    var answer = 0;
    // 10번당 하나 무료
    let free = Math.floor(n/10);
    answer = n*12000+(k-free)*2000;
    return answer;
}

 

반응형
반응형

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120817

 

문제

정수 배열 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) 더해서 나눠주어야 하기 때문에 더해주는 값을 담을 변수 생성

2) for 문으로 numbers의 길이만큼 돌리고 그 길이만큼 numbers안에 값을 불러와서 더해주기

3) for문 밖에서 더한 값과 배열의 길이값을 나눠주기

 

 

코드

function solution(numbers) {
    var answer = 0;
    let sum = 0;
    
    for(let i = 0; i < numbers.length; i++){
        sum += numbers[i];
    }
    answer = sum / numbers.length;
    return answer;
}
반응형
반응형

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120809

 

문제

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

 

 

제한사항

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

 

입출력 예

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

 

풀이

for문으로 numbers에 받아온 길이만큼 돌려준다.

answer에 push로 차례대로 배열에 담아주면서, numbers[i번째 배열에] * 2 한다.

 

 

코드

function solution(numbers) {
    var answer = [];
    for(let i = 0; i < numbers.length; i++){
        answer.push(numbers[i] * 2)
    }
    return answer;
}
반응형
반응형

출처

https://school.programmers.co.kr/learn/courses/30/lessons/120808

 

문제

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

 

 

제한사항

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

 

입출력 예

numer1 denom1 numer2 denom2 result
1 2 3 4 [5, 4]
9 2 1 3 [29, 6]

 

 

풀이

1)  분자 각각의 분모와 곱해서 더해준다. top

2)  각각의 분모끼리 곱해준다. bottom

3) 최소공배수 값을 만든다. max

4) for문을 돌려 분자 분모를 약분한다.

5) 분자, 분모의 값을 약분한 값으로 나누어 배열에 담아준다.

 

 

코드

function solution(numer1, denom1, numer2, denom2) {
    let top = numer1 * denom2 + numer2 * denom1;
    let bottom = denom1 * denom2;
    max = 1;
    
    for(let i = 1; i <= top; i++){
        if(top % i == 0 && bottom % i == 0){
            max = i
        }
    }
    
    return [top/max, bottom/max];
}
반응형

+ Recent posts