Java/백준알고리즘

백준알고리즘 #11720 숫자의 합 java

Sehyeok20 2020. 12. 7. 17:20
반응형

백준알고리즘 #11720 숫자의 합 문제

입력받은 숫자의 각 자릿수를 더하는 문제이므로 Long형 m값을 입력받은 후 10으로 나눈 나머지들을 각각 더하는 방식으로 

에러코드

다음과 같이 작성해서 제출한 결과 런타임 에러가 나왔다.

작은 수에서는 결과값이 잘 나오지만 N은 100자릿수까지 가능하므로 

자바 정수형 범위

위 그림처럼 입력받은 m값이 19자리를 넘어가게 되면 InputMismatchException이 발생한다.

이를 해결하기위해 n자리수 만큼의 m값을 String형의 문자열로 받은 후 각 자리를 나누어 배열에 저장한다.

백준알고리즘 #11720 숫자의 합 코드

이때 저장한 a[i]의 값들은 모두 '0', '1', ... ,'9' 등의 문자 형태이므로 단순히 수식을 붙여 계산하게 되면 '0'일 경우 아스키코드에 대응하는 수인 48이 나오고 '1'은 49 ... '9'는 57이 나오게 된다. int로 변환하여 각a[i]의 값들에 48을 뺀 값들을 sum에 합해주면 원하는 결과를 얻을 수 있다.

반응형