코딩 테스트/프로그래머스

[ 프로그래머스 - Java ] 다트게임(2018 KAKAO BLIND RECRUITMENT)

snow_hong 2022. 4. 25. 09:48


[ 풀이 ]

import java.lang.Math;

class Solution {
    public int solution(String dartResult) {
        int answer = 0;
        int idx = 0; //배열참조 idx
        int arr[] = new int[3]; //3번의 점수 저장 배열
        String temp =""; //문자열내 숫자 저장 변수
        
    
        for(int i =0; i<dartResult.length(); i++){
            
            switch(dartResult.substring(i,i+1)){
                case "*" :
                    arr[idx-1]*=2;
                    if(idx >1) arr[idx-2]*=2;
                    break;
                case "#" :
                        arr[idx-1] *= -1;
                    break;
                case "S" :
                    arr[idx] = (int)Math.pow(Integer.parseInt(temp),1);
                    idx++;
                    temp ="";
                    break;
                case "D" :
                     arr[idx] = (int)Math.pow(Integer.parseInt(temp),2);
                    idx++;
                    temp ="";
                    break;
                case "T" :
                     arr[idx] = (int)Math.pow(Integer.parseInt(temp),3);
                    idx++;
                    temp ="";
                    break;
               default :
                    temp += dartResult.substring(i,i+1);
                    break;
            }
        }
        
        for(int i =0; i<arr.length; i++){
            answer += arr[i];
        }
        
        
        return answer;
    }
    
      
}
728x90