볼링

면접 대비

시간 제한1초메모리 제한128 MB

요약
유효한 10프레임 볼링 경기에서 각 투구로 쓰러뜨린 핀 수가 주어질 때 총점을 계산한다.
난이도

보통10점 중 4점

유형
시뮬레이션, 구현, 배열, 수학
정답자
아직 제출이 없습니다

문제

볼링은 레인에 공을 굴려 10개의 핀을 최대한 많이 쓰러뜨리는 스포츠이다. 점수 계산은 초보자에게 헷갈리기 쉬운데, 특히 스트라이크나 스페어의 점수가 곧바로 더해지지 않기 때문이다.

한 게임은 10개의 프레임으로 이루어진다. 각 프레임은 핀 10개가 모두 세워진 상태에서 시작하며, 보통 한 프레임에서 공을 두 번 굴려 핀 10개를 모두 쓰러뜨리려 한다.

  • 스트라이크: 프레임의 첫 번째 공으로 핀 10개를 모두 쓰러뜨린 경우이다. 점수는 10점에 다음 두 번의 투구에서 쓰러뜨린 핀 수를 더한 값이다. 예를 들어 첫 프레임에서 스트라이크를 치고 두 번째 프레임에서 7과 1을 쳤다면, 첫 프레임은 10+7+1=1810 + 7 + 1 = 18점, 두 번째 프레임은 7+1=87 + 1 = 8점으로 두 프레임 후 합계는 26점이다.
  • 스페어: 한 프레임의 두 공으로 핀 10개를 모두 쓰러뜨린 경우이다. 점수는 10점에 다음 한 번의 투구에서 쓰러뜨린 핀 수를 더한 값이다. 예를 들어 첫 프레임에서 6과 4로 스페어를 처리하고 두 번째 프레임에서 8과 1을 쳤다면, 첫 프레임은 6+4+8=186 + 4 + 8 = 18점, 두 번째 프레임은 8+1=98 + 1 = 9점으로 두 프레임 후 합계는 27점이다.
  • 오픈 프레임(스트라이크도 스페어도 아님): 점수는 그 프레임에서 쓰러뜨린 핀 수 그대로이다.

10번째(마지막) 프레임은 스트라이크나 스페어 보너스를 계산할 수 있도록 규칙이 조금 다르다.

  • 첫 번째 공에서 스트라이크를 치면 공을 두 번 더 굴려 총 세 번 투구한다. 마지막 프레임에서 세 번 모두 스트라이크를 치면 10+10+10=3010 + 10 + 10 = 30점이다.
  • 스페어를 처리하면 공을 한 번 더 굴린다. 9와 1로 스페어를 처리한 뒤 스트라이크를 치면 9+1+10=209 + 1 + 10 = 20점이다.

각 투구마다 쓰러뜨린 핀 수가 주어질 때, 그 게임에서 선수가 얻는 총점을 계산하는 프로그램을 작성하라.

입력

첫 번째 줄에 테스트 케이스의 수 tt (t≤1000t \le 1000)가 주어진다. 이어지는 tt개의 줄에는 각각 한 게임 전체가 정수 aa (0≤a≤100 \le a \le 10)의 수열로 주어지며, 이는 각 투구에서 쓰러뜨린 핀 수를 순서대로 나타낸다. 입력의 모든 게임은 올바르다.

출력

각 테스트 케이스에 대해, 그 게임에서 선수가 얻는 총점을 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

    입력
    3
    10 10 10 10 10 10 10 10 10 10 10 10
    3 5 1 5 7 1 10 1 6 10 6 2 1 2 0 5 8 1
    9 1 5 0 3 0 8 1 6 4 7 2 7 1 6 3 10 4 4
    
    예상 출력
    300
    89
    101
    
  2. 예제 2

    입력
    1
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1
    1 4 4 5 6 4 5 5 10 0 1 7 3 6 4 10 2 8 6
    
    예상 출력
    133