[백준] 17215. 볼링 점수 계산 (C++) (re)

Algorithm|2022. 1. 16. 11:51
반응형

 

 

17215번: 볼링 점수 계산

첫째 줄에 각 기회마다 소현이가 쓰러뜨린 볼링핀의 개수가 공백없이 주어진다. 이때 스트라이크는 S, 스페어는 P, 핀을 하나도 못 쓰러뜨린 것은 -으로 주어진다.

www.acmicpc.net

 

나름 조건 다 맞춰서 작성했는데, 아무리 봐도 어디가 문제인지 모르겠다...

다시 풀어보자,,,,

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <string>

using namespace std;



int main(void)
{
  string s;
  int score = 0;
  int tmp = 0; // 탐색 중인 점수를 저장
  int bonus = 0;
  int count = 0;
  int trys = 0;
  int s_count = 0;
  cin >> s;

  for(int i =0; i<s.size(); i++) //1번
  {


    if(48 < s[i] && s[i] < 58) //2번
    {
      score += s[i] - 48;
      tmp = s[i] - 48;
      trys++;
    }
    else if( s[i] == '-')
    {
      tmp = 0;
      trys++;
    }
    else if( s[i] == 'P')
    {
      score += 10 - tmp;
      
      trys++;
      tmp = 10 - tmp;
    }
    else if( s[i] == 'S')
    {
      score += 10;
      s_count ++;
      trys += 2;
      tmp = 10;
    }

    if(bonus > 0 && count < 9)
    {
      score += tmp;
      bonus--;
    }
    //cout << s[i] << "  " << count << "\n" ;
    if(trys == 2)
    {
      trys = 0;
      count++;
    }
    if( s[i] == 'P') bonus ++;
    else if( s[i] == 'S') bonus +=2;
    
    
  }
  if(s_count == 12) score = 300;
  cout << score;


  return 0;
}
반응형

댓글()