프로그래머스 - 최고의 집합 [연습 문제]

2026. 1. 28. 18:47·코테

문제 설명:

자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다.

각 원소의 합이 S가 되는 수의 집합
위 조건을 만족하면서 각 원소의 곱 이 최대가 되는 집합
예를 들어서 자연수 2개로 이루어진 집합 중 합이 9가 되는 집합은 다음과 같이 4개가 있습니다.
{ 1, 8 }, { 2, 7 }, { 3, 6 }, { 4, 5 }
그중 각 원소의 곱이 최대인 { 4, 5 }가 최고의 집합입니다.

집합의 원소의 개수 n과 모든 원소들의 합 s가 매개변수로 주어질 때, 최고의 집합을 return 하는 solution 함수를 완성해 주세요.


문제 예시:

n s result
2 9 [4, 5]
2 1 [-1]
2 8 [4,4]

문제 해결:

def solution(n, s):
    if s <= n-1:
        return [-1]
    elif n == 1:
        return [s]
    else:
        result = [s//n for _ in range(n)]
        
        for i in range(0, int(s%n)):
            result[-(i+1)] += 1
            
        return result

접근법은 간단하다.

기본적으로 s 가 n-1 보다 작으면 반드시 해가 없다

왜냐하면 s가 1인데 n이 3이면 [0, 0, 1]이다. 이는 해가 없다.

또한 만약에 n이 1이면 그 자체가 제일 높으므로 [s]를 준다

 

메인은 다음과 같다.

만약 n이 5, s가 23이면 [4, 4, 5, 5, 5]이다

우리가 이를 통해 알 수 있는 건 다음과 같다.

s가 22면 [4, 4, 4, 5, 5]

s가 21면 [4, 4, 4, 4, 5]

s가 20면 [4, 4, 4, 4, 4]

 

규칙이 보이는가?

그렇다. n으로 s를 나눈 값들을 1차로 list에 넣고 남은 나머지만큼 뒤에서 +1씩 해주면 가장 큰 조합이 된다.

s가 15에서 25까지 잘 생각해 보면 같은 숫자로 채워질 때까지 하나씩 +1로 늘어난다.

'코테' 카테고리의 다른 글

프로그래머스 - 지형 이동 [Summer / Winter Coding (2019)]  (1) 2026.02.02
프로그래머스 - 최적의 행렬 곱셈 [연습문제  (0) 2026.01.29
프로그래머스 - [1차] 셔틀버스 [2018 KAKAO BLIND RECRUITMENT]  (0) 2026.01.27
프로그래머스 - 리코쳇 로봇 [연습문제]  (0) 2026.01.26
프로그래머스 - 거스름돈 [연습문제]  (0) 2026.01.26
'코테' 카테고리의 다른 글
  • 프로그래머스 - 지형 이동 [Summer / Winter Coding (2019)]
  • 프로그래머스 - 최적의 행렬 곱셈 [연습문제
  • 프로그래머스 - [1차] 셔틀버스 [2018 KAKAO BLIND RECRUITMENT]
  • 프로그래머스 - 리코쳇 로봇 [연습문제]
junsky00
junsky00
대기만성?
  • junsky00
    편안한 마음으로 꽃 구경하기
    junsky00
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • 코테 (21)
      • IT 뉴스 (4)
      • SKALA (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    보고서 생성
    탐색
    프로그래머스
    코테
    BFS
    코딩 테스트
    SK AX
    DP
    Python
    AI
    구현
    카카오
    스택
    Google Paper
    LLM 잘 쓰기
    동적 프로그래밍
    AI agent
    큐
    파이썬
    PAPER
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
junsky00
프로그래머스 - 최고의 집합 [연습 문제]
상단으로

티스토리툴바