https://programmers.co.kr/learn/courses/30/lessons/17682
int solution(string dart)
{
int arrnumber[3] = { 0, };
int i(0);
int j(0);
while (i < 3)
{
int number(0);
number = dart[j] - '0';
if (dart[j] == '1' && dart[j + 1] == '0')
{
number = 10;
j++
}
if (dart[j + 1] == 'S') number = number;
else if (dart[j + 1] == 'D') number = number*number;
else if (dart[j + 1] == 'T') number = number*number*number;
arrnumber[i] = number;
if (dart[j + 2] == '*')
{
if (i == 0) arrnumber[i] *= 2;
else//1들어오는 경우입니다.
{
arrnumber[i-1] *= 2;
arrnumber[i] *= 2;
}
j++;
}
else if (dart[j + 2] == '#')
{
arrnumber[i] *= -1;
j++;
}
i++;
j += 2;
}
return arrnumber[0] + arrnumber[1] + arrnumber[2];
}
내가약한 문자열 처리.
이 문제 특이한게 보통 문자열 reading 할 때 for 기반으로 하는데,
이 문제는 감각적으로 while로 돌리는게 더 나음.
이렇게 while 로 루프돌릴때
문자열 인덱스 string sTemp[j] <ㅡ 이런식의 j ++ 다음으로 넘겨주는 부분에 대한 처리를 잘 해야한다.