본문 바로가기

알고리즘/백준

[백준 알고리즘 자바]11720 : 숫자의 합

수행일자 : 2022.04.10


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

 

11720번: 숫자의 합

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

www.acmicpc.net


문제

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

입력

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

출력

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

입출력 예제


이번 문제는 BufferedReader와 [ split ] 을 사용해서 풀어보았다.

 

split 이란, 구분자를 기준으로 문자열을 잘라 배열로 입력할 때 사용하는 메소드이다.

사용 방법은 두 가지가 있다.

  •  split(String regex);
    • 구분자를 바탕으로 배열 형식으로 문자열을 잘라준다.
  • split(String regex, int limit)
    • 구분자를 바탕으로 배열 형식으로 문자열을 잘라주지만, limit 수만큼만 잘라준다.

 

이제 문제를 풀어보자.먼저 숫자 N개를 받을 변수를 선언한다. 이 N은 숫자인 int형이고 br.readLine()는 String 형이므로 Ingeter.paseInt()를 통해 형변환을 해준다.그리고 두번째로 입력받은 숫자를 [ split ] 를 사용해서 공백 기준으로 잘라 배열 arr[] 에 넣어준다.두번째로 입력받은 숫자는 공백없이 한줄로 이어져있기 때문에 [ split("") ] 을 사용해서 한 글자씩 나누어준다.이렇게 나누어진 숫자들을 arr[] 배열에 담아준다.그리고 for문을 통해 결과값을 저장하기 위해 선언한 변수 sum에 배열에 각 숫자들을 더해준다.마지막으로 결과인 sum을 출력해주면 된다.

답안 소스

 

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 N = Integer.parseInt(br.readLine());
		String[] arr = br.readLine().split("");
		int sum = 0;
		
		for(int i = 0; i < N; i++) {
			sum += Integer.parseInt(arr[i]);
		}
		
		System.out.println(sum);
	}

}