본문 바로가기
Algorithm

백준 알고리즘 11720번 문제풀이 - 자바(JAVA)

by LasBe 2021. 12. 26.
반응형

문제

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

입력

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

출력

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


결과


코드

import java.io.*;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int count = Integer.parseInt(br.readLine());
		String num = br.readLine();
		int arr[] = new int[count];
		int total = 0;
		
		for(int i=0;i<count;i++) {
			arr[i]=num.charAt(i)-'0'; 
			total += arr[i];
		}
		System.out.println(total);
	}
}

 


문제풀이

두 번의 오답을 제출해서 런타임 에러가 떴다.

 

처음엔 숫자 값을 int로 입력 받고, 오버플로우 때문인 것 같아 두번 째엔 long으로 입력을 받아왔다.

 

알고보니 숫자의 개수가 1<=N<=100 이었기 때문에 long으로도 담을 수 없는 크기었다.

 

그래서 결국 문자열로 입력을 받은 뒤 charAt() 메소드를 이용해 띄어쓰기 없는 숫자 값을 하나하나 나눠준 뒤 총 합을 계산했다.

 

charAt(i) - '0'을 해준 이유는 charAt() 메소드로 문자를 뽑아와 char -> int 형 변환을 거치면 아스키 코드 값으로 변환이 되기 때문이다.

반응형

댓글


오픈 채팅