728x90
숫자가 적혀있는 동전을 3개씩 뽑아서
숫자의 크기가 제일 큰 애는 Alice한테 주고 Bob한테는 제일 작은 값 주고,
가운데 값은 자기가 가진다.
동전이 없어질 때까지 반복한다.
자기가 가진 동전의 숫자의 합의 최댓값은?
문제를 보고 제일 먼저 생각난 건 3n이면 반복할 횟수는 n번.
뽑을 때마다 최댓값을 가진 동전 다음으로 큰 동전을 뽑아야함.
1,2,2,4,7,8
x,x,o,x,o,x
2,4,5
x,o,x
1,2,3,4,5,6,7,8,9
x,x,x,o,x,o,x,o,x
import java.util.Arrays;
class Solution {
//1,2,2,4,7,8
//x,x,o,x,o,x
//2,4,5
//x,o,x
//1,2,3,4,5,6,7,8,9
//x,x,x,o,x,o,x,o,x
public int maxCoins(int[] piles) {
//동전의 숫자 합.
int sum = 0;
//동전을 숫자 크기순으로 정렬함.
Arrays.sort(piles);
int[] arr = piles;
//전체 동전 갯수를 3으로 나눈 게 반복해야할 횟수.
int loopCount = arr.length/3;
//2씩 줄어드는 인덱스를 위해서 초기화한 변수.
int temp = 0;
for (int i = 0; i < loopCount; i++) {
int index = arr.length-1 + temp - 1;
sum += arr[index];
temp -= 2;
}
return sum;
}
}
728x90
반응형
'알고리즘 문제 풀이' 카테고리의 다른 글
1431. Kids With the Greatest Number of Candies (0) | 2021.06.10 |
---|---|
1827. Minimum Operations to Make the Array Increasing (0) | 2021.06.08 |
(아직안끝남)1351. Count Negative Numbers in a Sorted Matrix (0) | 2021.06.02 |
1528. Shuffle String (0) | 2021.05.25 |
1281. Subtract the Product and Sum of Digits of an Integer (0) | 2021.05.25 |