○ 기술면접/알고리즘

구현: 숫자의 합 (백준 11720)

ZEROMI 2023. 3. 21. 14:49
728x90

○ 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
1 초 256 MB 195316 106688 88823 55.309%

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

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

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

○ 입력 예시
5
54321

○ 출력 예시
15


import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		//숫자 개수: readLine() 메소드를 통해 String으로 입력 받은 후 형변환
		int count = Integer.parseInt(br.readLine());
		
		//문자열로 2번째 인자 받기
		int result = 0;
		String numString = br.readLine();
		for (int i = 0; i < numString.length(); i++) {
			result += Character.getNumericValue(numString.charAt(i));
		}
		
		System.out.println(result);
	
	}
	
}

○ 확인
- Scanner 클래스는 Space, Enter 모두 경계로 입력값을 인식하고, BufferedReader 클래스는 Enter만을 경계로 입력값을 인식
- BufferedReader는 readLine() 값 String으로 사용하지 않을 경우 무조건 형 변환이 필요
- BufferedReader "1 3 5 7" 식으로 공란 포함 String Line일시 StringTokenizer.nextToken() 이용 //import java.util.StringTokenizer;
- BufferedWriter: 출력 write(), 남아있는 데이터 모두 출력 flush(), 스트림 닫기 close()
- 문자 하나씩 꺼낼 때는 charAt() 메소드 사용
- 자료형 Char는 자동/강제 형 변환으로 정수형 변경 시 아스키코드로 변환되므로, Character.getNumbericValue() 메소드 사용 필요

728x90