코딩테스트 입문 Day 4 수학, 배열

  • 피자 나눠 먹기 (1)
  • 피자 나눠 먹기 (2)
  • 피자 나눠 먹기 (3)
  • 배열의 평균값

1. 피자 나눠 먹기 (1)

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

(1) 코드 작성

import math
# 올림을 통해 최소 필요한 피자의 판 수를 계산
def solution(n):
    return math.ceil(n/7)

(2) 코드 리뷰 및 회고

  • math 라이브러리의 ceil 함수를 사용한다. (올림 기능)
  • 최소로 필요한 피자 판 수를 구하는 것이기 때문에 인원/(한판의 조각)을 올림했다.
    • 예 : 15명이 피자를 먹을 때 최소 1조각씩 먹는다고 하면 3판 필요


2. 피자 나눠 먹기 (2)

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

(1) 코드 작성

def solution(n):
    for i in range(1, n*6+1):
        if (i*6)%n == 0:
            return i

(2) 코드 리뷰 및 회고

  • for 문을 돌릴 때 반복 횟수를 최대로 설정(n*6+1) => 한 사람당 한판 먹는다고 설정
  • 같은 조각을 먹는다고 할 때, 피자 판 수(i)와 조각수(6)를 곱한 후 사람으로 나누었을 때 나머지가 0일 때의 피자 판수를 반환한다.


3. 피자 나눠 먹기 (3)

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

(1) 코드 작성

def solution(slice, n):
    for i in range(1, n+1):
        if (slice*i)//n >= 1:
            return i

(2) 코드 리뷰 및 회고

  • for 문을 돌릴 때 반복 횟수를 최대로 설정(n+1) => 한 사람당 한판 먹는다고 설정
  • 피자 총 조각 수(한판 당 조각 수 * 판 수)를 인원으로 나눴을 때 1 이상인 경우의 피자 판 수를 구한다.


4. 배열의 평균값

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.
👉 문제 보러가기

(1) 코드 작성

# version 1. sum, len 함수 사용
def solution(numbers):
    return sum(numbers)/len(numbers)

# version 2. numpy 라이브러리 사용
import numpy as np

def solution(numbers):
    arr = np.array(numbers)
    return np.mean(arr)

(2) 코드 리뷰 및 회고

  • version 1. sum, len 함수 사용
    • 전체 리스트내 요소들의 평균값을 구하기 위해 sum 함수와 len 함수를 사용했다.
    • 평균 : 요소의 합/요소의 개수
  • version 2. numpy 라이브러리 사용
    • np 함수를 사용하기 위해 리스트를 numpy array 형태로 변환하였다.
    • np.mean 함수로 넘파이 어레이 형태의 값들을 기준으로 평균값을 반환할 수 있도록 설정했다.


👩🏻‍💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.

댓글남기기