ACM-ICPC 2010년도 인터넷 예선 문제 - 1 . Three Bowling Pin

Programming/Algorithm 2010. 10. 6. 23:51

acm 홈페이지에서 문제가 없어졌네요 ;
파일 없는데 .. 인쇄해 둔 것만 있구..

혹시 이거 문제 올렸다고 저작권 같은 문제가 생기진 않겠죠 ? ' - ' ) ;;;
뭐 이미 예선 결과도 다 나오고 했으니까 .. 올려도 문제 없을거라 믿고 올립니다.

어쨌든 이 문제는 볼링 점수 계산기를 짜는겁니다.
전체 10 프레임에 , 기본적으로 한 프레임당 투구를 두번하죠.
기본적으로 쓰러트린 핀의 수만큼 점수가 올라갑니다.
단 , 스페어 처리시 (프레임의 첫 투구에서는 핀을 다 쳐내지 못했는데 두번째 투구에서 남은 모든 핀을 쳐내는 것)  
해당 프레임이후 다음 투구까지의 점수가 + 됩니다.
스트라이크 처리시에는(프레임의 첫 투구에서 모든 핀을 쳐내는 것) 다음 두번의 투구까지의 점수가 +됩니다.
때문에 10번째 프레임에서 스페어 혹은 스트라이크가 나왔을때는 점수 계산을 위해 추가 투구가 필요합니다.

이게 기본 볼링룰이죠 ..
다만 이 문제에서는 볼링핀이 3개입니다.

보기 편하게 '/'로 각 프레임을 나눴을때
1 2 / 3 / 2 1 / 2 0 / 1 0  / 2 0 / 0 1 / 1 2 / 0 1 / 3 1 1

각 프레임의 점수는
6 / 6 / 5 / 2 / 1 / 2 / 1 / 3 / 1 / 5

따라서 최종 점수는
12 + 7 + 3 + 4 + 6 = 32

입력
입력의 첫째는 언제나 그렇듯 테스트케이스의 수( 1<= T <= 100 )를 입력합니다.
각 테스트 케이스의 첫 줄은 총 투구 횟수가 입력됩니다.
다음으로 그 투구 횟수만큼 각 투구 결과를 표기합니다. (위의 예에선 1 2 3 2 1 .... 3 1 1 )

출력
점수를 출력합니다.
단, 만약 핀은 3개인데 5개를 넘어뜨린다던가 하는 말도 안되는 입력 상황에서는 error를 출력합니다.

Problem A 였던만큼 가장 쉬운 문제였겠죠 ?
그냥.. 요구하는대로 짜면 됩니다.;;;;