코린이의 소소한 공부노트

[LeetCode/Easy] 2660. Determine the Winner of a Bowling Game 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2660. Determine the Winner of a Bowling Game

무지맘 2023. 6. 29. 23:08

1. Input

1) int[] player1

2) int[] player2

 

2. Output

1) 두 선수의 점수를 계산해 player1이 이겼다면 1, player2가 이겼다면 2, 비겼다면 0을 반환

- 10핀을 쓰러트렸다면 그 다음 2판의 점수가 2배가 된다.

 

3. Constraint

1) n == player1.length == player2.length

2) 1 <= n <= 1000

3) 0 <= player1[i], player2[i] <= 10

 

4. Example

Input: player1 = [4,10,7,9], player2 = [6,5,2,3] -> Output: 1

설명:

- player1의 점수: 4 + 10 + 2*7 + 2*9 = 46

- player2의 점수: 6 + 5 + 2 + 3 = 16

- 따라서 1을 반환한다.

 

5. Code

1) 첫 코드(2023/06/29)

class Solution {
    public int isWinner(int[] player1, int[] player2) {
        int sum1 = 0, sum2 = 0, ten1 = -3, ten2 = -3;
        for(int i=0 ; i<player1.length ; i++){
            sum1 += player1[i]; sum2 += player2[i];
            if(i-ten1<=2) sum1 += player1[i];
            if(i-ten2<=2) sum2 += player2[i];
            if(player1[i]==10) ten1 = i;
            if(player2[i]==10) ten2 = i;
        }
        return sum1==sum2 ? 0 : (sum1>sum2 ? 1 : 2);
    }
}

- 99.9%, 8%