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

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

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

 

โค๏ธ Problem

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

 

  • ์ œํ•œ์‚ฌํ•ญ
    • 1 ≤ my_string์˜ ๊ธธ์ด ≤ 1,000
    • my_string์€ ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž ๊ทธ๋ฆฌ๊ณ  ํ•œ์ž๋ฆฌ ์ž์—ฐ์ˆ˜๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

 

  • ์ž…์ถœ๋ ฅ ์˜ˆ & ์„ค๋ช…
no my_string result
1  "aAb1B2cC34oOp" 10
2  "1a2b3c4d123" 16
  1. "aAb1B2cC34oOp"์•ˆ์˜ ํ•œ์ž๋ฆฌ ์ž์—ฐ์ˆ˜๋Š” 1, 2, 3, 4 ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1 + 2 + 3 + 4 = 10 ์„ returnํ•ฉ๋‹ˆ๋‹ค.
  2. "1a2b3c4d123Z"์•ˆ์˜ ํ•œ์ž๋ฆฌ ์ž์—ฐ์ˆ˜๋Š” 1, 2, 3, 4, 1, 2, 3 ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16 ์„ returnํ•ฉ๋‹ˆ๋‹ค.

 


 

๐Ÿ’› Solution

ํ’€์ด

class Solution {
    public long solution(String my_string) {
        int sum = 0;

        String[] transArr = my_string.replaceAll("[a-zA-Z]", "").split("");

        for (int i=0; i<transArr.length; i++) {
            sum += Integer.parseInt(transArr[i]);
        }
        return sum;
    }
}

 

 

ํ‰๊ท  ์ฒ˜๋ฆฌ์†๋„ = 0.35ms

 


 

๐Ÿ’œ Comment

๋งจ ์ฒ˜์Œ์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€๋ฐ, ํ…Œ์ŠคํŠธ๋Š” ํ†ต๊ณผํ–ˆ๋Š”๋ฐ ์ œ์ถœ์„ ํ•˜๋‹ˆ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.

class Solution {
    public long solution(String my_string) {
        int sum = 0;
        int trans = Integer.parseInt(my_string.replaceAll("[a-zA-Z]", ""));

      while(trans%10>0) {
          sum += trans%10;
          trans = trans/10;
      }
        return sum;
    }
}

 

 

์›์ธ์ด ๋ฌด์—‡์ธ์ง€ ๊ณฐ๊ณฐํžˆ ์ƒ๊ฐํ•ด๋ดค๋Š”๋ฐ, ์ œํ•œ ์‚ฌํ•ญ์ธ "1 ≤ my_string์˜ ๊ธธ์ด ≤ 1,000" ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™์•˜๋‹ค.


๋งŒ์•ฝ my_string์˜ ๊ธธ์ด๊ฐ€ 1000์ž๋ผ๊ณ  ํ–ˆ์„ ๋•Œ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋ชจ๋‘ ์ˆซ์ž๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋ฉด int trans๋กœ ๋ณ€ํ™˜์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ String my_string์—์„œ ์ˆซ์ž๋งŒ ๋‚จ๊ฒจ๋‘๊ณ  ํ•ด๋‹น ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ String[]๋กœ ๋ณ€ํ™˜์„ ํ•œ ๋’ค, ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ž‘์„ฑ์„ ํ•˜๋‹ˆ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€ ์•Š์•˜๋‹ค.

 

๐Ÿค Concept

Java Runtime Error

  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜
  • ํ”„๋กœ๊ทธ๋žจ์ด ์ปดํŒŒ์ผ์ด ๋œ ํ›„์— ๋ฐœ์ƒ
  • ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์— ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋˜์–ด ์ž˜๋ชป๋œ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ๋•Œ ๋ฐœ์ƒ
  • ์›์ธ์€ ๋‹ค์–‘ํ•˜๋‹ค

 

  • ์ฃผ์š” ์˜ˆ์‹œ
    • ๋ฌดํ•œ ๋ฃจํ”„
    • 0์œผ๋กœ ๊ฐ’์„ ๋‚˜๋ˆ„๊ธฐ
    • null๊ฐ’์ด ๋“ค์–ด๊ฐ„ ๊ฒฝ์šฐ (NullPointerException)

 

  • ์ด๋ฒˆ ์‚ฌ๋ก€์˜ ๊ฒฝ์šฐ int๋กœ ๋ณ€ํ™˜์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ธธ์ด์˜ ๊ฐ’์ด ๋“ค์–ด๊ฐ€ Runtime Error ์œ ๋ฐœ

 

cf) Java Compile Error

  • ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๋Š” ์ค‘์— ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜
  • ์ฃผ๋กœ ๋ฌธ๋ฒ• ์ƒ์˜ ์˜ค๋ฅ˜ (syntax)
  • ์—๋Ÿฌ ๋ฐœ์ƒ ๋ถ€๋ถ„์„ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋‹ค

 

  • ์ฃผ์š” ์˜ˆ์‹œ
    • syntax ์˜ค๋ฅ˜ (;๋ˆ„๋ฝ, ๊ด„ํ˜ธ๋ˆ„๋ฝ ๋“ฑ)
    • import ๋ˆ„๋ฝ

 

 

๋Œ“๊ธ€