๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers lv-0

์ˆจ์–ด์žˆ๋Š” ์ˆซ์ž์˜ ๋ง์…ˆ (2) - Java [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ]

by ๊ทคํ”ผํ‚ค 2022. 11. 28.

 

โค๏ธ Problem

๋”๋ณด๊ธฐ
  • ๋ฌธ์ œ
    ๋ฌธ์ž์—ด my_string์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. my_string์€ ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž, ์ž์—ฐ์ˆ˜๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. my_string์•ˆ์˜ ์ž์—ฐ์ˆ˜๋“ค์˜ ํ•ฉ์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

  • ์ œํ•œ ์‚ฌํ•ญ
    • 1 ≤ my_string์˜ ๊ธธ์ด ≤ 1,000
    • 1 ≤ my_string ์•ˆ์˜ ์ž์—ฐ์ˆ˜ ≤ 1000
    • ์—ฐ์†๋œ ์ˆ˜๋Š” ํ•˜๋‚˜์˜ ์ˆซ์ž๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.
    • 000123๊ณผ ๊ฐ™์ด 0์ด ์„ ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
    • ๋ฌธ์ž์—ด์— ์ž์—ฐ์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ 0์„ return ํ•ด์ฃผ์„ธ์š”.
  • ์ž…์ถœ๋ ฅ ์˜ˆ & ์„ค๋ช…
no my_string result
1 "aAb1B2cC34oOp" 37
2 "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ํ•ฉ๋‹ˆ๋‹ค.

 


 

๐Ÿ’› Solution

ํ’€์ด

class Solution {
    public int solution(String my_string) {
        String[] num = my_string.replaceAll("[^0-9]", " ").split(" ");

        int sum = 0;
        for(int i=0; i<num.length; i++) {
            if(num[i].equals("")) {
                continue;
            } else {
                sum += Integer.parseInt(num[i].trim());            
            }
        }        
        return sum;
    }
}

 

์ฒ˜๋ฆฌ์†๋„๋Š” NOT BAD.. ์ข€ ๋” ๋น ๋ฅด๊ฒŒ ๋ณด์™„ํ•  ์ˆ˜ ์—†์„๊นŒ?

 


 

๐Ÿ’œ Comment

์ˆซ์ž๋ฅผ ์ œ์™ธํ•œ ์˜์–ด ์†Œ๋ฌธ์ž ๋ฐ ๋Œ€๋ฌธ์ž๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๋Œ€์ฒดํ•œ ๋‹ค์Œ String[]์œผ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ, ์ž๊พธ ๊ณต๋ฐฑ์ด ์‚ฝ์ž…๋˜๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋‹ค. trim();์„ ์‚ฌ์šฉํ•˜๋ คํ–ˆ์ง€๋งŒ, trim();์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ณต๋ฐฑ์ด ๋ชจ๋‘ ์—†์–ด์ ธ ์ˆซ์ž๊ฐ€ ๋ช‡์ž๋ฆฌ์ˆ˜์ธ์ง€ ๊ตฌ๋ถ„์ด ์•ˆ๋˜์—ˆ๋‹ค.

๊ณต๋ฐฑ์œผ๋กœ ์ธํ•ด int ๋ณ€ํ™˜ ์‹œ ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ NumberFormatException์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

 

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)

๊ทธ๋ž˜์„œ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์กฐ๊ฑด๋ฌธ์„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค. num[i].equals("");์ธ ๊ฒฝ์šฐ์—๋Š” ์ง€์†, ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ int๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ•ฉ๊ณ„์— ๋”ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž‘์„ฑํ–ˆ๋‹ค.

ํ†ต๊ณผ ์™„๋ฃŒ ๐Ÿ’ช

 

 

ํ—คํ—ค 6์ ๐Ÿ˜˜

 

 

 

๋Œ“๊ธ€