본문 바로가기

백준 알고리즘

백준 [11720] 숫자의 합 - 자바 풀이

반응형

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

 

11720번: 숫자의 합

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

www.acmicpc.net

 

거의 다 생각했는데 한가지 빼먹었다. -48, -'0'

 

.charAt(i) 으로 받으면 구하는 값을 정수가 아닌 아스키 코드 값으로 반환한다. 그래서 뒤에 -48이나 -'0'을 적어야 정수의 값을 얻을 수 있다.

 

import java.util.Scanner;

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

첫 번째 입력받는 수는 정수 N으로, N개의 숫자를 더할 때 사용한다.

a를 문자열 타입의 String으로 입력받고,

for(int i=0; i<N; i++) {
	sum+= a.charAt(i)-48;
    }

 

sum+=   으로 반복해 sum값을 갱신해 더하는 것이다.

a.charAt(i) 를 사용해 a의 i번째 문자를 가져오는 것이고,

이는 아스키 코드 형식으로 수를 가져오기 때문에 -48을 하면 된다.

 

for문을 사용해 0 ~ N-1번째 자리를 반복해 더하면 된다.

 

그리고 println을 사용해 sum 값을 출력하면 된다.

반응형