프로그래머스

[프로그래머스] 피자나눠먹기 (1)_python

미스터 한뺑 2023. 3. 27. 14:34
반응형

1. 문제

1 - 1. 문제 설명

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

 

1 - 2. 제한사항

  • 1 ≤ n ≤ 100

1 - 3. 입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

입출력 예 #3

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

 

2. 문제해결방법

문제를 봤을 때 피자는 7조각이  한 판이고 n (사람)이 최소 1개이상의 피자 조각을 먹어야한다고 생각했을때 7을 n으로 나눠서 값의 몫만 반환하면 되겠다 생각을 했었다. 그러나 n이 1이거나 15일때 답이 안 나와서 단순하게 그럼 n이 7일 아니면  1을 더해주는 코드를 짜면 되겠다 생각이 들었다. 그래서 조건문을 줘서 문제를 해결했다. 

def solution(n):
    if n % 7 == 0: 			
        answer = n // 7		
    else:
        answer = n // 7 + 1 
    return answer

 

 

3. 다른 사람 풀이

import math

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

간단하게 해결한 사람의 코드... math가 어떤 기능을 하는지 몰랐다 .math의 라이브러리는 수학적인 기능을 포함하고 있는 라이브러리이다.ceil()함수는 소수점이 있는 값이면 올림을 해준다는 함수이다. 만약에 n이 7이면 정수니까 그대로 반환 1이면 값이 0.3.. 실수값이니까 올려서 1의 값이  n이 15면 2.1.. ㅅ실수값이니까 3 이 나온다 .

 

4. 느낀점 

이렇게 라이브러리를 사용하면서 문제 풀이하는건 처음 본것 같다. 문제는 하나지만 다른 방식으로 풀어낸 코드를 보면 정말 멋지다라는 생각밖에 안든다. 아직도 난 조건문에 벗어나질 못하는것같다... 자제를 한다고 다짐했는데 쉽지가 않다.

나중에 나도 간단한 코드로 박수 받는 사람이 되고싶다 .  

반응형