본문 바로가기
알고리즘 문제 풀이

1561. Maximum Number of Coins You Can Get

by 가나무마 2021. 5. 13.
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
반응형