[1차] 다트 게임

김토리·2024년 2월 6일

알고리즘

목록 보기
15/27
post-thumbnail

업로드중..

#include <string>

using namespace std;

int solution(string dartResult) {
    int preInt[3]={0,};//총 3번의 다트
    int j =0; // 다트 점수 순서
    int k = 1; // 문자열의 위치
    
    string preString ="";
    
    //첫번째 점수 넣기
    preInt[j]= (dartResult[1]=='0'? 10: dartResult[0]- '0');
    
    //10점인 경우 
    if(preInt[j]==10){
        k=2;
    }
    
    for(int i=k;i<size(dartResult);i++)
    {
        if(dartResult[i]=='S'){
            preInt[j]=preInt[j];
        }else if(dartResult[i]=='D'){
            preInt[j] *= preInt[j];
        }else if(dartResult[i]=='T'){
            preInt[j] *=(preInt[j]*preInt[j]);
        }else if(dartResult[i]=='*'){
            preInt[j] =preInt[j]*2;
            if(j-1>=0){
                preInt[j-1] =preInt[j-1]*2;
            }
        }else if(dartResult[i]=='#'){
            preInt[j] =preInt[j]*(-1);
        }else{	//숫자인경우
            j++;
            if(dartResult[i+1]=='0'){
                preInt[j] =10;
                i++;
            }else{
                preInt[j] = dartResult[i]- '0';
            }
            
        }
    }
    
    return preInt[0]+preInt[1]+preInt[2];
}

*주의할 점
1) string 변수로 파라미터 값을 받았어도 한 개씩 읽을 때는 char로 간주
2) char을 int 로 변환할 때는 char변수 - '0'로 적용
int 명시 형변환은 아스키코드 값으로 나옴

profile
웹 개발하며 데이터 분석, AI 공부하는 jinveloper

0개의 댓글