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

Chobby·4일 전

LeetCode

목록 보기
779/800

풀이

  1. 점수를 계산해줄 헬퍼 함수 정의
    1-1. 점수를 순회하며, 현재 요소가 최근 10점 요소와 최대 2턴 내에 있는 요소라면 2배를 더함
    1-2. 현재 요소가 10점인지 판별하여 인덱스 저장
    1-3. 점수의 총합 반환
  2. player1player2의 점수 비교
    2-1. 동등 시, 0 반환
    2-2. player1의 승리 시, 1 반환
    2-3. player2의 승리 시, 2 반환
function isWinner(player1: number[], player2: number[]): number {
    const p1 = getScore(player1)
    const p2 = getScore(player2)
    if(p1 === p2) return 0
    if(p1 > p2) return 1
    return 2
};

function getScore(score: number[]) {
    let total = 0
    let recentTenIdx: number
    for(let i = 0; i < score.length; i++) {
        if(i - recentTenIdx <= 2) total += score[i] * 2
        else total += score[i]
        if(score[i] === 10) recentTenIdx = i
    }
    return total
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글