Skip to content

Commit 063ac27

Browse files
committed
[level 3] Title: 최고의 집합, Time: 0.77 ms, Memory: 9.9 MB -BaekjoonHub
1 parent 84094b1 commit 063ac27

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# [level 3] 최고의 집합 - 12938
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/12938)
4+
5+
### 성능 요약
6+
7+
메모리: 9.9 MB, 시간: 0.77 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 연습문제
12+
13+
### 채점결과
14+
15+
정확성: 70.0<br/>효율성: 30.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2025년 05월 16일 21:28:50
20+
21+
### 문제 설명
22+
23+
<p>자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다.</p>
24+
25+
<ol>
26+
<li>각 원소의 합이 S가 되는 수의 집합</li>
27+
<li>위 조건을 만족하면서 각 원소의 곱 이 최대가 되는 집합</li>
28+
</ol>
29+
30+
<p>예를 들어서 자연수 2개로 이루어진 집합 중 합이 9가 되는 집합은 다음과 같이 4개가 있습니다.<br>
31+
{ 1, 8 }, { 2, 7 }, { 3, 6 }, { 4, 5 }<br>
32+
그중 각 원소의 곱이 최대인 { 4, 5 }가 최고의 집합입니다.</p>
33+
34+
<p>집합의 원소의 개수 n과 모든 원소들의 합 s가 매개변수로 주어질 때, 최고의 집합을 return 하는 solution 함수를 완성해주세요.</p>
35+
36+
<h5>제한사항</h5>
37+
38+
<ul>
39+
<li>최고의 집합은 <strong>오름차순으로 정렬된 1차원 배열(list, vector)</strong> 로 return 해주세요.</li>
40+
<li>만약 최고의 집합이 존재하지 않는 경우에 <strong>크기가 1인 1차원 배열(list, vector)</strong> 에 <code>-1</code> 을 채워서 return 해주세요.</li>
41+
<li>자연수의 개수 n은 1 이상 10,000 이하의 자연수입니다.</li>
42+
<li>모든 원소들의 합 s는 1 이상, 100,000,000 이하의 자연수입니다.</li>
43+
</ul>
44+
45+
<hr>
46+
47+
<h5>입출력 예</h5>
48+
<table class="table">
49+
<thead><tr>
50+
<th>n</th>
51+
<th>s</th>
52+
<th>result</th>
53+
</tr>
54+
</thead>
55+
<tbody><tr>
56+
<td>2</td>
57+
<td>9</td>
58+
<td>[4, 5]</td>
59+
</tr>
60+
<tr>
61+
<td>2</td>
62+
<td>1</td>
63+
<td>[-1]</td>
64+
</tr>
65+
<tr>
66+
<td>2</td>
67+
<td>8</td>
68+
<td>[4, 4]</td>
69+
</tr>
70+
</tbody>
71+
</table>
72+
<h5>입출력 예 설명</h5>
73+
74+
<p>입출력 예#1<br>
75+
문제의 예시와 같습니다.</p>
76+
77+
<p>입출력 예#2<br>
78+
자연수 2개를 가지고는 합이 1인 집합을 만들 수 없습니다. 따라서 -1이 들어있는 배열을 반환합니다.</p>
79+
80+
<p>입출력 예#3<br>
81+
자연수 2개로 이루어진 집합 중 원소의 합이 8인 집합은 다음과 같습니다.</p>
82+
83+
<p>{ 1, 7 }, { 2, 6 }, { 3, 5 }, { 4, 4 }</p>
84+
85+
<p>그중 각 원소의 곱이 최대인 { 4, 4 }가 최고의 집합입니다.</p>
86+
87+
88+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
def solution(n:int, s:int) -> list:
2+
div, n_mod_diff = s//n, n-s%n
3+
return [-1] if s < n else [div + (i >= n_mod_diff) for i in range(n)]

0 commit comments

Comments
 (0)