프로그래머스 입문 [0단계] 숨어있는 숫자의 덧셈 (1) java 풀이

0

알고리즘

목록 보기
2/11
post-custom-banner

github링크

이번 문제도 저번에 푼 모음제거 와 비슷한 분위기를 가진 문제인거 같다 좀 더 맛있는(?)

문제 인거같다 🫡

문제

정답 코드

import java.util.Arrays;

class Solution {
    public static int solution(String my_string) {
        int answer = 0;
        String numberString = my_string.replaceAll("[^0-9]", "");
        String[] split = numberString.split("");
        for (int i = 0; i < split.length; i++) {
            int stringNum = Integer.parseInt(split[i]);
            answer += stringNum;
        }
        return answer;
    }
}

설명 및 내가 이해하면서 푼 방법

처음에 my_string에 있는 문자열들을 다 없애주고 싶었다 이 방법은 replaceAll에서 정규식을 통하여 문자를 전부 걸러주었다

my_string = "aAb1B2cC34oOp"
String numberString = my_string.replaceAll("[^0-9]", "");
결과값 => "1234"

이후에 split으로 배열을 하나 만들어 줘야겠다 생각하였다

String[] split = numberString.split("");
결과값 => ["1","2","3","4"]

이제 이 값들을 string 값이 아닌 int값으로 바꿔주기위해 string배열안에 있는 숫자들을 Integer.parseInt로 돌려야 한다고 생각했다

  for (int i = 0; i < split.length; i++) {
            int stringNum = Integer.parseInt(split[i]);
        }
        
  결과값 => [1,2,3,4]

이후에 for문으로 순회하면서 split 배열 안에 있는 값들을 다 더해주자

  for (int i = 0; i < split.length; i++) {
            int stringNum = Integer.parseInt(split[i]);
            answer += stringNum;
        }
   배열안에 있는값들이 += 연산자에 의해서 전부 더해지면서 
  answer => 10 
  라는 결과값을 얻을 수 있다

물론 stream이 엄청 마려운 문제였지만 하나하나 처음부터 차근차근 결과값을 생각하면서 문제를 풀고싶기에.. for문을 채택하였다.

profile
배운것을 끄적끄적 올리는 개발 블로그
post-custom-banner

0개의 댓글