본문 바로가기

코딩테스트

숨어있는 숫자의 덧셈 (2) JAVA 코딩테스트 프로그래머스

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120864

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명 : 문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

 

나의 풀이 :

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        String mystr_num = my_string.replaceAll("[a-zA-Z]"," ").trim();
        String[] mystr_arr = mystr_num.split(" ");
        
        for(int i=0; i<mystr_arr.length; i++){
            if( !mystr_arr[i].equals("") ){
                answer += Integer.parseInt(mystr_arr[i]);
             }
        }

        return answer;
    }
}

 

처음부터 이렇게 코드를 짠던 것은 아니고, 질문하기를 통해 나랑 비슷한 케이스들을 보고, 구글 검색하면서 잘된 사람들의 코드를 복붙하기는 보다는 직접 써보면서 코드를 작성했다. 알고 있었다고 생각했던 작은 것들이.. 정작 필요할 때는 어떻게 사용해야될지 생각조차 안나는 경우가 있다는것을 다시한번 느끼게 되었다. 특히 replaceAll의 사용과  split 사용 그리고 equals가 그랬다.

 

 

replace 참고 :

https://coding-factory.tistory.com/128

 

[Java] 문자열 치환(Replace) 사용법 & 예제

String변수나 배열 같은 곳에 많은 양의 데이터들이 들어가 있을 경우 자신이 바꾸고자 하는 값만 골라서 바꾸기란 쉽지 않습니다. 이럴 때 유용하게 쓰일 수 있는 함수가 바로 Replace함수입니다.

coding-factory.tistory.com

 

replaceAll("[a-zA-Z]"," ") 참고 :

https://www.andrew.cmu.edu/course/15-121/lectures/Strings/strings.html

 

Strings

    The DNA (the genetic blueprint) of any species is composed of about 4 billion ACGT nucleotides. DNA forms a double helix that has two strands of DNA binding and twisting together. In pattern matching problems we ignore the fact that DNA forms a doubl

www.andrew.cmu.edu

 

728x90
300x250