1744번
-
[백준 1744번] 수 묶기 (Java 풀이)Algorithm/Greedy Algorithm 2022. 2. 18. 14:44
백준알고리즘 1744번 : 수 묶기 문제에 대한 대략적인 설명 곱하거나 더함으로써 정수 집합의 최댓값을 만들어 내는 문제이다. 처음에는 집합을 하나의 배열로 만들어 정렬한다음에 양의 정수와 그렇지 않은 정수로 구분하여 계산해주려고 했다. 그러나 그렇게 되면 배열을 어디서부터 끊어야할지 계산하는 것이 너무 복잡하여(집합의 길이가 짝수냐, 양수의 갯수가 짝수냐 등등..) 고민끝에 ArrayList로 양의 정수와 0이하의 정수를 구분하여 받아 정렬해주었다. 이렇게 되면 편한점은, 각 ArrayList들끼리만 정렬을 한뒤에 최댓값을 셈해주고, 남은 것들을 계산해주면 된다. 음의 정수는 작은 숫자들끼리 곱할수록 더 큰 정수를 만들수 있고(-11)*(-10) > (-5)*(-4), 양의 정수는 말할것도 없기 때문이..