본문 바로가기

알고리즘

[백준] 11720번: 숫자의 합 (java, python)

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

 

11720번: 숫자의 합

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

www.acmicpc.net


🗒 풀이

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 s = sc.next();
        sc.close();

        int sum = 0;
        for (int i = 0; i < N; i++) {
            sum += (int) s.charAt(i) - '0';
        }
        System.out.println(sum);
    }
}

입력받을 값들의 크기 N을 입력받는다.

N만큼 for문을 돈다고 명시하고, 입력받은 문자열 s를 탐색한다.

이 때, 각각의 문자열의 값을 더해야하므로 sum 변수를 미리 지정해놓는다.

charAt은 해당 문자의 아스키 코드를 반환하므로, '0'을 뺌으로써 입력받은 숫자 값 그대로 반환받을 수 있도록 한다. '0' 이나 -48을 해도 좋다.

 


python

N = int(input())
s = input()
total = 0
for i in range(N):
    total += int(s[i])
print(total)

입력받은 값 N 만큼의 for문 범위를 생성하고,

문자열 각 자리를 탐색한다. 해당 문자열을 int로 바로 변환하고, total 변수에 누적해준다.