본문 바로가기
PS/백준

[백준][Java] 11720번 : 숫자의 합

by nyrimmm 2024. 8. 20.

[문제 링크]

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


문제 설명

  • 공백없이 쓰여진 N개의 숫자를 모두 합해서 출력
  • 입력 : N(숫자의 개수), N개의 숫자
  • 출력 : 숫자 N개의 합

 

 

 

문제 풀이

  • N개의 숫자를 하나의 문자열로 입력받은 후, charAt() 함수를 사용하여 한 문자씩 가져와서 합을 구한다.
  •  이 때, charAt() 함수로 반환된 값은 char형이기 때문에 해당 문자의 아스키코드 값을 반환한다.
  • 따라서 - '0' or -48을 해주어야 한다.

(1) Scanner 사용

import java.util.Scanner;

public class Main1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        String num = sc.next();

        int sum = 0;
        for (int i = 0; i < n; i++) {
            sum += num.charAt(i) - '0';	//0이 아스키 코드로 48이기 때문
        }

        System.out.println(sum);
    }
}

 

 

 

(1) BufferedReader 사용

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());
        String num = br.readLine();

        int sum = 0;
        for (int i = 0; i < n; i++) {
            sum += num.charAt(i) - '0';
        }

        bw.write(sum + "\n");
        bw.flush();
        bw.close();
    }
}