프로그래머스 문자열 안의 숫자 더하기 JAVA 풀이 (문자열, 구현, 아스키코드)

2026. 7. 5. 16:02·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


📌 문제 개요

문자열 my_string이 주어질 때, 문자열에 포함된 모든 숫자의 합을 구하는 문제이다.

알파벳은 무시하고 숫자(0~9)만 찾아 각각의 값을 더한 뒤 결과를 반환하면 된다.

 

예를 들어 "aAb1B2cC34oOp"가 입력되면 숫자는 1, 2, 3, 4이므로 결과는 10이 된다.


📌 접근 방법

문자열을 처음부터 끝까지 순회하면서 각 문자를 확인한다.

현재 문자가 숫자인지 판단하기 위해 '0' 이상 '9' 이하인지 범위 비교를 수행한다.

 

숫자라면 문자에서 '0'을 빼 실제 정수 값으로 변환한 뒤 결과에 누적한다.

이 방법은 숫자를 하나씩 비교하는 것보다 코드가 간결하며, 코딩 테스트에서도 자주 사용되는 방식이다.


📌 핵심 아이디어

1. 문자열을 한 글자씩 순회하기

charAt()을 이용해 문자열의 각 문자를 차례대로 확인한다.

for (int i = 0; i < my_string.length(); i++) {
    char c = my_string.charAt(i);
}

2. 숫자인지 범위 비교하기

문자는 내부적으로 아스키 코드(유니코드) 값을 가지므로 범위 비교가 가능하다.

if (c >= '0' && c <= '9')
따라서 '0' 이상 '9' 이하라면 숫자로 판단할 수 있다.
'0' → 48
'1' → 49
...
'9' → 57

3. 문자 숫자를 정수로 변환하기

문자 '3'은 실제 숫자 3이 아니라 문자 코드값 51이다.

'0'의 코드값은 48이므로 숫자로 변환된다.

result += c - '0';
'3' - '0'
= 51 - 48
= 3
'7' - '0'
= 55 - 48
= 7

이 원리는 코딩 테스트에서 매우 자주 활용되는 문자 처리 기법이다.


📌 전체 코드

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

        for (int i = 0; i < my_string.length(); i++) {
            char c = my_string.charAt(i);

            if (c >= '0' && c <= '9') {
                result += c - '0';
            }
        }

        return result;
    }
}
 

📄 정리

  • 문자열을 순회하면서 숫자만 찾아 합산하는 구현 문제이다.
  • '0' <= c <= '9' 범위 비교를 사용하면 숫자를 간결하게 판별할 수 있다.
  • c - '0' 연산을 통해 문자 형태의 숫자를 실제 정수로 변환할 수 있다.
  • 아스키 코드(유니코드) 기반의 문자 연산은 다양한 문자열 문제에서 자주 활용되므로 익혀두면 많은 문제를 쉽게 해결할 수 있다.
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

프로그래머스 크레인 인형뽑기 게임 JAVA 풀이 (2019 카카오 개발자 겨울 인턴십)  (0) 2026.07.08
프로그래머스 택배 상자 꺼내기 JAVA 풀이 (2025 코드 챌린지)  (0) 2026.07.07
프로그래머스 다트 게임 JAVA 풀이  (0) 2026.07.04
프로그래머스 PCCE 기출문제 10번 데이터 분석 JAVA 풀이 (구현, 정렬)  (0) 2026.07.03
프로그래머스 체육복 JAVA 풀이 (그리디, 구현)  (0) 2026.07.02
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 프로그래머스 크레인 인형뽑기 게임 JAVA 풀이 (2019 카카오 개발자 겨울 인턴십)
  • 프로그래머스 택배 상자 꺼내기 JAVA 풀이 (2025 코드 챌린지)
  • 프로그래머스 다트 게임 JAVA 풀이
  • 프로그래머스 PCCE 기출문제 10번 데이터 분석 JAVA 풀이 (구현, 정렬)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN N
      • 코테(Solved.ac + Programmers) N
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    springboot
    기출문제
    구현
    level0
    자바
    완전탐색
    자료구조
    정렬
    문자열
    정처기
    level1
    java
    정처기오답노트
    solved.ac
    dp
    시뮬레이션
    코딩테스트
    수학
    알고리즘
    프로그래머스
    백준
    정보처리기사
    Level2
    정처기실기
    배열
    실기
    백엔드개발자
    정보처리기사 실기 기출문제
    피보나치
    브루트포스
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
프로그래머스 문자열 안의 숫자 더하기 JAVA 풀이 (문자열, 구현, 아스키코드)
상단으로

티스토리툴바