본문 바로가기
백준 풀이

[백준 풀이_Java] 11720 숫자의 합

by happyhelen 2021. 8. 17.

문제

N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

입력

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

출력

입력으로 주어진 숫자 N개의 합을 출력한다.

 

 

 

처음 생각

 

모든 숫자가 한 자리 수이므로, ""로 구분한 후 더한다

 

 

 

내가 푼 방법

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{

	public static void main(String[] args) throws IOException{
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
		int digit = Integer.parseInt(br.readLine());
		int sum =0;
		String num = br.readLine(); // 숫자를 String으로 받아서
		String[] str = num.split(""); // 쪼개서 배열에 넣기 split
		
		for(int i=0; i<num.length(); i++) {
			sum += Integer.parseInt(str[i]); // int 로 바꿔서 합하기
		}
		
		System.out.println(sum);
	}

}

 

 


다른 풀이

 

 

1) bufferedReader

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{

	public static void main(String[] args) throws IOException{
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		br.readLine(); //반복문에서 쓰이지 않으므로 N은 받기만 한다
        
		int sum =0;
		String num = br.readLine();
		
        // String을 byte배열로 반환하는 getBytes()
		for(byte n : num.getBytes()) {
			sum += (n-'0');
		}
		
		System.out.println(sum);
	}

}

getBytes() : String -> byte 배열 

 

 

 


 

 

 

2) Scanner

import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		
		System.out.println("start");
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String nums = sc.next();
		int sum=0;
		
		for(int i=0; i<N; i++) {
			sum += nums.charAt(i)-'0';
		}
		System.out.println(sum);
	}

}

charAt() : String -> 해당 인덱스의 char값