CodingTest

프로그래머스 - 숨어있는 숫자의 덧셈 (1) (JAVA)

쩡선영 2023. 3. 29. 00:19

프로그래머스 0단계 숨어있는 숫자의 덧셈(1) 문제 입니다

https://school.programmers.co.kr/learn/courses/30/lessons/120851

 

프로그래머스

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

programmers.co.kr

 

 

 

❓문제설명

문자열 my_string이 매개변수로 주어집니다. my_string 안의 모든 자연수들의 합을  return하도록 solution 함수를 완성해주세요.

 

⚠️ 제안사항 및 입출력 예

  • 1 <= my_string의 길이 <= 1,000
  • my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.
my_string result
"aAb1B2cC34oOp" 10
"1a2b3c4d123" 16

 


 

✏️ 내가 직접 짠 코드

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        for(int i=0; i<my_string.length(); i++) { 
		if(Character.isDigit(my_string.charAt(i))) //my_string의 i인덱스의 값이 숫자이면
			answer+= my_string.charAt(i) - '0'; //answer에 my_string의 i인덱스의 값을 더해줌
		}
        return answer;
    }
}

▲ 코드 설명은 주석 참고


⭐ 정리해야 되는 개념

  • isDigit() 함수

       isDigit()함수는 명시된 char 값이 숫자인지 여부를 판단하여 ture 또는 false를 리턴하는 것.

System.out.println(Character.isDigit('a')); //false
System.out.println(Character.isDigit(97)); //true

 

  • charAt()-'0'

       문자를 숫자로 반호나할때 사용함. '0'의 아스키코드가 48이기에 -'0'을 해줌.

숫자 1 -> 49 - 48 = 1
숫자 2 -> 50 - 48 = 2
숫자 3 -> 51 - 48 = 3
숫자 4 -> 52 - 48 = 4