새소식

Programming/1 Day 1 Commit

[Programmers] 피자나눠먹기 (1) (Python3)

  • -

[Programmers] 피자나눠먹기 (1)

 

프로그래머스

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

programmers.co.kr

Blog:

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

제한사항

1 ≤ n ≤ 100

입출력 예

n    result
7    1
1    1
15    3

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

입출력 예 #3

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

프로그래머스 기초 문제들은 간단한 개념들을 하나씩 학습하기에 좋은 것 같다.
아직 level.0에 머무르면서 간단한 문제들을 하나씩 풀고 있는 중이다.

# Solution 1
import math

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

나는 이런식으로 올림을 해줘서 구했다.
처음에 피자가 8조각인 줄 알고 고생을 좀 했다..ㅋㅋ
다른 분들의 코드 중 괜찮은 것을 골라와봤다.

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

이렇게 간단하게 풀이할 수 있는 방법이 있었다.
하지만 보기에 간단해보인다고 생각해내기가 간단하지는 않은 코드..

  • 잠깐 // 의 용법을 살펴보자면 이렇다.
    • 밑의 코드에서 보이다 싶이 몫을 출력해주는 연산자라고 생각해주면 된다.
    • Solution 2에서는 n-1을 해줬는데 그 이유는 7판이라고 해서 2판이 되는 것이 아니라 7판까지 1판이어야 되기 때문이다.
    • n // 6 을 해주는 것보다는 (n - 1) // 7 을 하는 것이 훨씬 더 직관적이라는 것을 알 수 있다.
    • 여기에 1을 더해주면 된다.
def dashdash(n):
	return n // 3
dashdash(1) # 0
dashdash(2) # 0
dashdash(3) # 1

 

 

GitHub - Park-Minjoo/CODINGINTERVIEW_PRACTICE: 1 Day 1 Problem since 2022.4.7

1 Day 1 Problem since 2022.4.7. Contribute to Park-Minjoo/CODINGINTERVIEW_PRACTICE development by creating an account on GitHub.

github.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.