MapleStory Finger Point Cute Line Smiley Blinking Hello Kitty Angel MapleStory Finger Point

๐Ÿƒ‍โ™€๏ธprogrammers/Java

หšโ‚Šโœฉโ€งโ‚Š ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค java - [1์ฐจ] ๋‹คํŠธ ๊ฒŒ์ž„ หšโ‚Šโœฉโ€งโ‚Š

HYEJU01 2024. 6. 17. 19:00
์ฒด๊ฐ Level : โ˜… โ˜… โ˜… 
Review: ์ •๊ทœ์‹๊ณผ ํŒจํ„ด์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ... ํŒจํ„ด ๋ฝ‘์•„์˜ค๋Š” ๋ถ€๋ถ„๋งŒ ์ฐธ๊ณ ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ง์ ‘ ์ฝ”๋”ฉํ–ˆ๋Š”๋ฐ ์กฐ๊ฑด์ด ๊นŒ๋‹ค๋กœ์›Œ์„œ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค ใ…œใ…œ 

 

๐Ÿ’ก

 

๋‘์ž๋ฆฌ ์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€์•ผํ•˜๋Š” ์ 

* ๊ฐ€ ๋‚˜์˜ค๋ฉด ์ด์ „ ๊ฐ’๋„  *2 ํ•ด์ค˜์•ผํ•˜๋Š”๊ฒƒ.

import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

class Solution {
    public int solution(String dartResult) {
        
        int answer = 0;
        String[] arr = new String[3];
        
     
        String ptn = "(\\d+)([SDT])([*#]?)";
        
        Pattern p = Pattern.compile(ptn);
        Matcher m = p.matcher(dartResult);
        
        int j = 0;
        
        int []result = new int[3];
        
        while (m.find()) {
            arr[j] = m.group();
            j++;
        }
        int i =0;
        
        
        for (String s : arr){
            int num = 0;
            int tmp = 0; 
            
            // * ๋งŒ๋‚˜๋ฉด ๊ทธ์ „๊บผ ๋‘๋ฐฐ
            
            
            if(s.contains("S")){
                
                  if(s.contains("10")){
                    num = Integer.valueOf("10");
                }else {
                    num = Integer.valueOf(s.substring(0,1));
                }
                
                result[i] += Math.pow(num,1); // 1^1
                if (s.contains("*")){
                    result[i] *= 2;
                    if (i != 0){
                        result[i-1] *= 2;
                    }
                }else if (s.contains("#")){
                    result[i] *= (-1);
                }
                i++;
                
          
                
            }else if(s.contains("D")){
                if(s.contains("10")){
                    num = Integer.valueOf("10");
                }else {
                    num = Integer.valueOf(s.substring(0,1));
                }
                
                result[i] += Math.pow(num,2); 
                
                if (s.contains("*")){
                    result[i] *= 2;
                     if (i != 0){
                        result[i-1] *= 2;
                    }
                    
                }else if (s.contains("#")){
                    result[i] *= (-1);
                }
                 i++;
                
  
            }else if(s.contains("T")){
                
                  if(s.contains("10")){
                    num = Integer.valueOf("10");
                }else {
                    num = Integer.valueOf(s.substring(0,1));
                }
                
                result[i] += Math.pow(num,3);
                if (s.contains("*")){
                    result[i] *= 2;
                     if (i != 0){
                        result[i-1] *= 2;
                    }
                    
                }else if (s.contains("#")){
                    result[i] *= (-1);
                }
                 i++;
               
            } 
            
        }
        
        for (int n : result){
            answer += n;
        }
        
        
        return answer;
    }
}