티스토리 뷰

728x90
반응형

백준 온라인 저지(BOJ) 11720번 숫자의 합

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

 

11720번: 숫자의 합

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

www.acmicpc.net

* 사용언어 : java, 자바

 

1. 문제

공백없이 쓰여진 n개의 숫자를 합하여 출력

 

2. 풀이

주로 쓰이는 Scanner 클래스의 메소드로는 숫자를 1자리씩 끊어서 입력받을 수 없습니다.

붙어있는 숫자는 하나의 숫자로 입력받기 때문에, 문자열로 입력받아서 한 글자씩 처리해주어야 합니다.

 

첫 번째 줄의 n은 숫자로 받고, 두 번째 줄의 숫자들은 하나의 문자열로 받습니다.

그 후 문자열의 길이(= n)만큼 반복하면서 한 글자씩 숫자로 변경하여 더해줍니다.

 

숫자 변경은 2가지 방식으로 처리할 수 있습니다.

 

1) ASCII code를 활용하는 방법

int 형과 char 형에 + 또는 - 연산자를 사용할 경우 char형이 int 형으로 변환되어 계산됩니다.

이를 활용하여 처리합니다.

 

2) Integer 클래스의 parseInt와 String 클래스의 substring을 활용하는 방법

입력값이 모두 숫자이므로 int형으로 강제 형변환하여 처리합니다.

 

3. 코드

#1 ASCII code

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String inputs = sc.next();
		sc.close();

		int result = 0;
		for (int i = 0; i < n; ++i) {
			result += inputs.charAt(i) - '0';
		}
		System.out.println(result);
	}
}

#2 Integer.parseInt()

		// #1 코드에서 12라인만 아래 코드로 변경
		result += Integer.parseInt(inputs.substring(i, i + 1));
728x90
반응형
댓글