[프로그래머스][파이썬] 피자 나눠 먹기 (1) - 수학 (Level 0)

뻥튀기아이스크림·2025년 2월 26일
1
post-thumbnail

◽ 문제 출처

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

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(n):
    answer = 0
    
    if n % 7 == 0:
        answer = n / 7
    else:
        answer = n // 7 + 1
    return answer
  • 7조각으로 나누어 떨어지면 최소 판 수를 구하기 위해 n / 7을 반환하고, 나누어 떨어지지 않으면 한 조각 이상 먹어야 하므로 n // 7 + 1을 반환한다.
  • 입출력 3번째 예시에서 15 / 7 = 2.xxxx 처럼 최소 2판보다는 많아야 하므로 +1 해주어야 한다.

◽ 다른 사람 풀이

def solution(n):
    return (n + 6) // 7
  • 6을 더해주면 원래 나누어 떨어지던것도 정수부가 늘어나지 않으니 가능하고, 나누어 떨어지지 않을 땐 7을 넘지 않는선에서 정수부를 늘릴 수 있으니 조건문 연산을 하지 않더라도 완벽히 계산할 수 있는 똑똑한 코드인 것 같다.

◽ 더 나아가기

  • 쉽게 코드의 뜻을 이해하기에는 내 풀이가 좋아보이지만, 연산 횟수는 아래 풀이가 적다.
  • 역시 알고리즘은 이런 간단한 문제에서부터 실력이 들어난다..!



피드백은 언제나 환영입니다 :)

profile
성장하고 싶은 개발자

0개의 댓글