다트게임

이준경·2021년 5월 10일
0

<나의풀이>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Solution {
    public int solution(String dartResult) {
        int answer = 0;
 
        String[] s = dartResult.split("[SDT*#]");
        int[] num = new int[6];
        int k=1;
 
        for(int i=0; i<s.length; i++){
            if(!(s[i].equals("")))
                num[k++]=Integer.parseInt(s[i]);
        }  
        num[0]=0;
        num[4]=0
        k=1;
 
        for(int i=0; i<dartResult.length(); i++){
            switch(dartResult.charAt(i)){
                case 'S':
                    k++;
                    break;
                case 'D':
                    num[k]*=num[k];
                    k++;
                    break;
                case 'T':
                    num[k]*=num[k]*num[k];
                    k++;
                    break;
                case '*':
                    num[k-2]*=2;
                    num[k-1]*=2;
                    break;
                case '#':
                    num[k-1]*=-1;
                    break;
                default :
                    break;
            }
        }
        answer =num[1]+num[2]+num[3];
        return answer;
    }
}
 
cs
  1. sqlit으로 나눈뒤 배열 s에 넣고 s가 ""가 아닐때만 배열 num에 변환하여 대입. 이때 num의 첫번째 배열은 나중에 계산을 위해 0으로 고정함.
  2. dartResult의 문자열이 SDT*#중 하나라면 주어진 casw문 실행
  3. num을 합하여 answer에 반환 후 리턴

0개의 댓글

관련 채용 정보