본문 바로가기
  • think together
카테부 4기 판교 ai 실무/코테 공부

[⭐ 꼭 다시보기⭐] 프로그래머스 코딩테스트 "입문 문제" Day4

by hwamgai 2026. 6. 24.

문제: 피자 나눠먹기(1)

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

내코드:

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

좋은 코드:

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

 

 

 

 

 

문제:피자 나눠먹기 (2)

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

내 코드:

⭐️⭐️⭐️⭐️⭐️⭐️ 다시보기 ⭐️⭐️⭐️⭐️⭐️⭐️
제미나이가 방법을 알려줬다 -- 정답 알려주지 말라고 했더니 방법을 알려줌..
# 방법1) while 로 돌면서 피자판수 1부터 늘려가며 찾기
def solution(n):
    answer = 1
    while True:
        if (answer*6)%n ==0:
            break
        answer += 1
    return answer

# 방법2) 최대공약수
def solution(n):
    a = n
    b = 6
    while b > 0:
        a, b = b, a%b
    # a는 최대공약수
    # 최소 판수를 구하기 위해 n을 a로 나눈다
    return n//a

좋은 코드:

# 최대한 math 는 안쓰려고 하느데 혹시 모르니 알아두자
import math

def solution(n):
    return (n * 6) // math.gcd(n, 6) // 6

 

 

 

 

 

 

 

문제: 피자 나눠먹기(3)

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

내 코드:

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

좋은 문제 : 

def solution(slice, n):
    return ((n - 1) // slice) + 1
def solution(slice, n):
    d, m = divmod(n, slice)
    return d + int(m != 0)
def solution(slice, n):
    return (n + slice - 1) // slice

 

 

 

 

 

문제: 배열의 평균값

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

내 코드:

파이토닉하게 반복문 도는 법 : answer = [i for i in numbers]
파이썬 내장 함수 sum(list)
파이썬 내장 함수 round(숫자, 자릿수) -- 원하는 소수점 자릿수에서 반올림
def solution(numbers):
    return round(sum(numbers)/len(numbers), 1)

좋은 코드:

# 파이썬의 나누기(/) 연산은 결과를 자동으로 실수(float) 형태로 반환하기 때문에,
# 5.0이나 94.5처럼 따로 소수점 지정을 안 해도 알아서 예쁘게 한 자리로 출력된다

def solution(numbers):
    return sum(numbers) / len(numbers)