IdoCleanCode
article thumbnail
반응형

코딩 테스트 - 프로그래머스

 

코딩 테스트 - 프로그래머스

코딩 입문 테스트 두 수의 합 두 수의 차 두 수의 곱 몫 구하기 두 수의 나눗셈 숫자 비교하기 분수의 덧셈 나머지구하기 배열 두배 만들기 중앙값 구하기 최빈값구하기 출처 https://programmers.co.kr/

idocleancode.tistory.com

 

피자 나눠 먹기(1)
피자 나눠 먹기(1)

 

문제

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

 

문제 원리

원리1

n(사람의 수)을 7(피자의 조각)로 나눈 몫이 필요한 피자의 개수이고, n이 7로 나누어 떨어지지 않는다면 피자 한 판을 더 추가하는원리입니다.

 

피자 나눠먹기(1) 원리
피자 나눠먹기(1) 원리-1

 

원리2

사람의 수 를 피자 조각을 정확하게 나눠 지지 않을때 몫을 올림하면  더 간단하게 표현 할수 있습니다.

 

피자 나눠 먹기(1) 원리-2

 

원리3

다른 방법은 모든 사람의 수를 7의 배수 아닌 수를 만들고 정수 나눗셈이후 + 1 더하면 피자의 수를 구할수 있습니다

 

피자 나눠 먹기(1) 원리-3
피자 나눠 먹기(1) 원리-3

문제 풀이

Python

원리1

def solution(n):
    # n을 7로 나눈 몫이 필요한 피자의 개수
    pizza = n // 7
    
    # n이 7로 나누어 떨어지지 않는 경우, 피자 한 판을 추가
    if n % 7 != 0:
        pizza += 1
        
    return pizza

 

원리2

import math

def solution(n):
    return math.ceil(n / 7)

 

원리3

def solution(n):
    return (n - 1) // 7 + 1

 

JavaScirpt

원리1

function solution(n) {
    // n을 7로 나눈 몫이 필요한 피자의 개수
    let pizza = Math.floor(n / 7);
    
    // n이 7로 나누어 떨어지지 않는 경우, 피자 한 판을 추가
    if (n % 7 !== 0) {
        pizza += 1;
    }
        
    return pizza;
}

 

원리2

function solution(n) {
    // n을 7로 나눈 후, 그 결과를 올림하여 필요한 피자의 수를 계산
    return Math.ceil(n / 7);
}

 

원리3

function solution(n) {
    // n에서 1을 뺀 후, 그 결과를 7로 나눈 몫에 1을 더하여 필요한 피자의 수를 계산
    return Math.floor((n - 1) / 7) + 1;
}

출처

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

반응형
profile

IdoCleanCode

@IdoCleanCode

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!