언어, 알고리즘 공부/백준

[백준 알고리즘] 11720번 숫자의 합(java, python 3)

쿠몬e 2019. 4. 24. 20:39

숫자의 합

<JAVA>

import java.util.Scanner;

public class Main {
     public static void main(String args[]){
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            String a = sc.next();
            
            int sum=0;
            for(int i=0;i<n;i++){
                sum+= a.charAt(i) - 48;
            }
            System.out.println(sum);
            
        }
}

​

String을 입력받아 각각의 자리수에 해당하는 숫자를 더해야 한다.

숫자들은 charAt(인덱스)로 하나하나 빼올 수 있지만 이는 아스키 코드 값이기 때문에 무작정 더하면 안된다.

아스키 코드표를 참고하면 문자 '0'은 십진수 48에 해당한다.

 

출처: 네이버 지식백과

따라서 '0'값을 빼거나 십진수 값 48을 빼면 해당 숫자가 나온다.

 

<Python 3>

파이썬 코드는 매우 간단하다.

리스트로 변환시켜  합을 구하기만 하며된다.

n = int(input())
li = list(map(int, list(input())))
if n == len(li):
    print(sum(li))

 

▼문제링크

https://www.acmicpc.net/problem/11720

반응형