← 학습 코스

더하기 식의 합계

C++완성형

숫자 글자를 값으로 바꿔요

앞 레슨에서 문자와 문자열의 묶음을 읽었어요. 이번에는 숫자 문자들을 정수 하나로 해석해요. '7'-'0'은 숫자 7이에요. 숫자 문자를 오른쪽으로 하나 붙이면 기존 값에 10을 곱하고 새 숫자를 더해요.

문자 2·4·6을 읽는 상태는 0→2→24→246이에요. 기존 값 24에 문자 6을 붙이면 24*10+6이 돼요. 앞의 0도 같은 방식으로 읽을 수 있어요.

구분자를 만나면 한 숫자가 끝나요

계산 전체의 합 total과 지금 읽는 숫자 number를 분리해요. 구분자를 만나면 number를 total에 더하고 number를 0에서 다시 시작해요.

읽은 문자 지금 숫자 끝난 숫자 합
1 1 0
2 12 0
+ 0 12
4 4 12

마지막 4 뒤에는 +가 없어요. 문자열을 다 읽은 뒤 남은 숫자는 어떻게 할까요? 마지막 항의 값으로 포함해야 해요. for (char ch : text)는 문자들을 차례로 읽는 범위 반복이에요.

직접 풀어봐요

text는 0 이상의 정수들을 +로 연결한 식이에요. 각 정수를 십진수로 해석해 전체 합을 반환해요. 숫자 앞에 0이 붙어도 같은 값을 뜻해요.

항 개수는 120, 각 항의 값은 09999, text 길이는 1100이에요. 문자 범위는 09와 +뿐이에요. 빈 항·공백·맨 앞 또는 맨 뒤 +는 없어요. 실행용 입력은 text 한 줄, 출력은 반환값이에요. 하네스가 입출력을 처리해요.

예시 1: text="12+3+05" → 20. 12+3+5를 더해요. 예시 2: text="7+8" → 15. 두 항의 합이에요.

예시 입력

12+3+05

예상 결과

20

예시 입력

7+8

예상 결과

15
핵심 개념
  • stl-string: 여러 자리 숫자와 완료된 항의 합을 따로 유지해요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기