http://school.programmers.co.kr/learn/courses/30/lessons/120845
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- box의 길이는 3입니다.
- box[0] = 상자의 가로 길이
- box[1] = 상자의 세로 길이
- box[2] = 상자의 높이 길이
- 1 ≤ box의 원소 ≤ 100
- 1 ≤ n ≤ 50
- n ≤ box의 원소
- 주사위는 상자와 평행하게 넣습니다.
입출력 예

입출력 예 설명
입출력 예 #1
- 상자의 크기가 가로 1, 세로 1, 높이 1이므로 모서리의 길이가 1인 주사위는 1개 들어갈 수 있습니다.
입출력 예 #2
- 상자의 크기가 가로 10, 세로 8, 높이 6이므로 모서리의 길이가 3인 주사위는 12개 들어갈 수 있습니다.
문제 접근
1. box라는 리스트의 각 0번째, 1번째, 2번째가 가로, 세로, 높이의 길이
-> 각 너비에 길이 n이 얼만큼 들어갈 수 있는지? -> 나누기해서 몫을 뽑으면 됨
-> 예를 들어, 가로 길이가 10이면 n=3은 3번, 세로 길이가 8이면 3은 2번, 높이 길이가 6이면 3은 2번
-> 그럼 3 * 2 * 2 = 12, 총 12개의 정육면체가 들어감
2. n은 정수로 고정, //은 애초에 정수 몫 연산이므로 int 굳이 씌워주지 않아도됨
최종 코드
def solution(box, n):
return (box[0]//n) * (box[1]//n) * (box[2]//n)
# int(box[0]//n) * int(box[1]//n) * int(box[2]//n)'Python > 프로그래머스 풀이' 카테고리의 다른 글
| 프로그래머스 python3 - 암호 해독 (0) | 2025.09.23 |
|---|---|
| 프로그래머스 python3 - 개미 군단 (0) | 2025.09.22 |
| 프로그래머스 python3 - 옷가게 할인 받기 (0) | 2025.09.22 |
| 프로그래머스 python3 - 머쓱이보다 키 큰 사람 (0) | 2025.09.22 |
| 프로그래머스 python3 - 배열 원소의 길이 (0) | 2025.03.31 |