본문 바로가기
코딩 테스트/프로그래머스

[연습 문제] 최고의 집합

by 위그든씨 2023. 3. 29.

문제 설명

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 풀이

  • 주어진 S라는 숫자에 대해 n가지로 표현 한 뒤 각각의 표현들에 대해 곱한 값이 최댓값인걸 찾는 문제
  • 중간 값에서 최댓값이 나온다는 걸 알게 됨
  • S를 n으로 나눈 몫을 a, 나머지를 b라고 선언
  • a가 n개가 있고, 그 중에서 b개 만큼 +1 을 하면 그 집합이 최댓값이 됨
  • s=9,n=2 이면 a=4,b=1 => 2,2,2,2 => 3,2,2,2 => 24

소스 코드

def solution(n, s):
    a=s//n
    b=s%n
    l = [a]*n
    for i in range(-1,-b-1,-1):	#집합이 오름차순으로 return 해야 돼서 마지막 순번으로부터 +1 해줌
        l[i]+=1
    if(l[0]==0):
        return [-1]
    return l



if(__name__=="__main__"):
    n,s = map(int,input().rsplit())
    print(solution(n,s))

 

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

[동적 계획법] 등굣길  (0) 2023.03.31
[DFS/BFS] 단어 변환  (0) 2023.03.30
[DFS/BFS] 네트워크  (0) 2023.03.30
[힙] 이중 우선순위 큐  (0) 2023.03.29
[동적 계획법] 정수 삼각형  (0) 2023.03.29