(백준)11720번 숫자의 합 풀기

DevSeoRex·2022년 6월 10일
0

백준

목록 보기
11/12

입력받을 숫자의 갯수를 정하고, 공백없이(중요!) 숫자를 연속하여 입력받아 각 값을 모두 더한 합계를 출력해주는 것이 문제의 요지이다.

여기서 실수한 것이 간단하게 생각해서 Scanner로 전부 입력받고 출력을 하였지만 실패하였다. 그때 간과한것이 입력의 형태였다. Scanner는 숫자를 입력받고 Enter를 입력하면 밑줄로 내려간다. 하지만 문제에서 주어진 테스트 케이스는 쭉 연결 되어있다. 공백도 없다.

그래서 문제에 접근하는 방법을 BufferedReader로 붙어있는 숫자를 문자열로 입력받고, String 클래스의 charAt() 메서드를 이용해서 한글자씩 분리하고, Charater클래스의 getNumericValue() 메서드를 이용하여 숫자로 변환해주고 이 값들을 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));
		String a = br.readLine();
		int b = Integer.parseInt(a);
		String c = br.readLine();
		
		int sum = 0;
		
		for(int i=0; i<b; i++) {
			char k = c.charAt(i);
			int f = Character.getNumericValue(k);
			sum += f;
		}
		
		System.out.println(sum);
	}
}

**b(숫자의 개수)만큼만 반복문을 돌게 설정하였는데, 숫자를 b의 크기보다 더 입력할 수는 있지만, b의 크기만큼 반복문을 반복하면, 뒤의 나머지 입력한 숫자들은 합산을 할 수 없게 하는 방식으로 구현하였다.**

개수에 딱 맞게 숫자를 입력했을 경우

개수보다 더 많은 숫자를 입력했을 경우

0개의 댓글