🏁 Algorithm/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

[Programmers] μˆ¨μ–΄μžˆλŠ” 숫자의 λ§μ…ˆ(2)(μžλ°”)

Dhey 2023. 4. 18. 03:20
λ°˜μ‘ν˜•

➰문제

λ¬Έμžμ—΄ my_string이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. my_string은 μ†Œλ¬Έμž, λŒ€λ¬Έμž, μžμ—°μˆ˜λ‘œλ§Œ κ΅¬μ„±λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€. my_stringμ•ˆμ˜ μžμ—°μˆ˜λ“€μ˜ 합을 returnν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

 

 

μ œν•œμ‚¬ν•­

   -  1 ≤ my_string의 길이 ≤ 1,000

   -  1 ≤ my_string μ•ˆμ˜ μžμ—°μˆ˜ ≤ 1000

   -  μ—°μ†λœ μˆ˜λŠ” ν•˜λ‚˜μ˜ 숫자둜 κ°„μ£Όν•©λ‹ˆλ‹€.

   -  000123κ³Ό 같이 0이 μ„ ν–‰ν•˜λŠ” κ²½μš°λŠ” μ—†μŠ΅λ‹ˆλ‹€.

   -  λ¬Έμžμ—΄μ— μžμ—°μˆ˜κ°€ μ—†λŠ” 경우 0을 return ν•΄μ£Όμ„Έμš”.

 


μž…μΆœλ ₯ 예

my_string result
"aAb1B2cC34oOp" 37
"1a2b3c4d123Z" 133

 


μž…μΆœλ ₯ 예 μ„€λͺ…

  μž…μΆœλ ₯ 예 #1

  • "aAb1B2cC34oOp"μ•ˆμ˜ μžμ—°μˆ˜λŠ” 1, 2, 34 μž…λ‹ˆλ‹€. λ”°λΌμ„œ 1 + 2 + 34 = 37 을 returnν•©λ‹ˆλ‹€.

  μž…μΆœλ ₯ 예 #2

  • "1a2b3c4d123Z"μ•ˆμ˜ μžμ—°μˆ˜λŠ” 1, 2, 3, 4, 123 μž…λ‹ˆλ‹€. λ”°λΌμ„œ 1 + 2 + 3 + 4 + 123 = 133 을 returnν•©λ‹ˆλ‹€.

 

 

 


 

πŸ’‘ν’€μ΄

⭐제좜 μ½”λ“œ

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        
        my_string = my_string.replaceAll("[^\\d]", " ");
        
        String[] str = my_string.split(" ");
        for(int i=0; i<str.length; i++){
            answer += (!str[i].isEmpty()) ? Integer.parseInt(str[i]) : 0;
        }
        return answer;
    }
}

 

🧐 μ½”λ“œ 풀이

  1. λ¬Έμžμ—΄μ—μ„œ μˆ«μžμ— ν•΄λ‹Ήν•˜μ§€ μ•ŠλŠ” λ¬ΈμžλŠ” 곡백(" ")으둜 λŒ€μ²΄ν•œλ‹€.

       (  [^\\d]  =>  [ ] μ•ˆμ˜ ^λŠ” ^~둜 μ‹œμž‘ν•˜μ§€ μ•ŠλŠ”λ‹€,  \dλŠ” 0-9κΉŒμ§€μ˜ 숫자

                           λ”°λΌμ„œ, 0-9κΉŒμ§€μ˜ 숫자둜 μ‹œμž‘ν•˜μ§€ μ•ŠλŠ” 것 = 문자  )

  2. 곡백을 κΈ°μ€€μœΌλ‘œ λ¬Έμžμ—΄μ„ λ‚˜λˆ μ„œ 배열에 μ €μž₯ν•œλ‹€.

  3. μ‚Όν•­ μ—°μ‚°μžλ‘œ λ°°μ—΄μ˜ 각 값이 null이 μ•„λ‹ˆλΌλ©΄( isEmpty() ) int둜 λ³€ν™˜μ‹œμΌœ answer에 λ”ν•˜κ³ , λΉ„μ–΄μžˆλ‹€λ©΄ 0을 λ”ν•œλ‹€.

 

 

λ°˜μ‘ν˜•