프로그래머스 - 최고의 집합
구현 문제입니다. 숫자 n과 그 합인 s가 주어졌을 때, 곱이 최대가 되는 집합을 구하는 문제입니다. n=2, s=9가 주어졌다고 가정하겠습니다. 이에 따르는 집합은 {1,8}, {2,7}, {3,6}, {4,5}입니다. 여기서 곱이 최대인 집합은 {4,5}입니다. 예제로 짐작할 수 있듯이, 최대 곱은 집합의 원소의 편차가 가장 적을 때 발생합니다. 편차를 작게하려면 s/n으로 이루어진 집합을 우선 구한 뒤, 나머지가 있을 때 원소에 각각 1씩 더해주면 됩니다. 나머지는 무조건 n보다 작기 때문에 집합의 최소 값은 s/n 입니다. 즉, 나머지가 없을 경우 최대는 s/n이고, 나머지가 있을 경우 최대는 (s/n)+1입니다. [구현 코드] import java.util.Arrays; class Solutio..
더보기