숨어있는 숫자의 덧셈 (1)

난이도 하
화낼거양's avatar
Dec 30, 2024
숨어있는 숫자의 덧셈 (1)
Contents
정답
 
 

문제 설명

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

제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.

입출력 예

my_string
result
"aAb1B2cC34oOp"
10
"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합니다.

유의사항

  • 연속된 숫자도 각각 한 자리 숫자로 취급합니다.
 
기본적으로 주어진 코드 :
class Solution { public int solution(String my_string) { int answer = 0; return answer; } }
 
 

정답

 
class Solution { public int solution(String my_string) { int answer = 0; for (int i = 0; i < my_string.length(); i++) { try { answer += Integer.parseInt(String.valueOf(my_string.charAt(i))); } catch (Exception e) {} } return answer; } }
 

코드 설명

 
메서드 정의 및 변수 초기화
public int solution(String my_string) { int answer = 0;
  • solution 메서드는 문자열 my_string을 입력받아, 각 문자를 숫자로 변환한 값의 합을 반환합니다.
  • answer 변수는 합계를 저장하기 위해 초기화됩니다.
 
문자열 순회 및 숫자 변환
for (int i = 0; i < my_string.length(); i++) { try { answer += Integer.parseInt(String.valueOf(my_string.charAt(i))); } catch (Exception e) {} }
  • for 루프를 사용하여 문자열 my_string의 각 문자를 순회합니다.
  • 각 문자를 String.valueOf로 문자열로 변환하고, 이를 Integer.parseInt를 통해 정수로 변환합니다.
  • 변환된 정수를 answer에 더합니다.
  • 만약 변환 중에 예외가 발생하면 (Exception), 이를 무시하고 계속 진행합니다. 이는 숫자가 아닌 문자를 처리할 때 유용합니다.
 
결과 반환
return answer;
  • answer 변수에 저장된 숫자들의 합을 반환합니다.
 
 

예제

입력: "a1b2c3"
  • 순회 및 변환:
    • 'a': 변환 실패 (무시)
    • '1': 1로 변환 후 합계 내 answer에 추가 (answer = 1)
    • 'b': 변환 실패 (무시)
    • '2': 2로 변환 후 합계 내 answer에 추가 (answer = 3)
    • 'c': 변환 실패 (무시)
    • '3': 3로 변환 후 합계 내 answer에 추가 (answer = 6)
  • 출력: 6
Share article

moohyun