* 공부 목표
입출력 - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992
- 11720번
문) N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
입) 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
** <공백 없이> 쓰여졌다. = 문자열로 입력받아야 한다.
1. 숫자의 개수는 int 자료형으로 받고, 연산할 수는 String 자료형으로 받는다.
2. 그리고 String자료형으로 받은 값을 <연산>하기 위하여 charAt(); 메소드를 활용한다.
3. for문을 통해, 입력받은 문자열의 첫번째 원소(charAt(0))부터 마지막까지 누적합을 구한다.
* charAt(인덱스);
- 문장 중에 인덱스 위치에 해당하는 char 추출.
- '0'(아스키코드 : 48)을 빼면서 값의 차이를 통해 숫자를 알 수 있음.
(ex. arr[0] = '1'(아스키: 49) / arr[1] = '2'(아스키코드: 50) ... 이 들어감.)
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
String a = sc.next();
sc.close();
int sum = 0;
for(int i=0; i<N; i++) {
sum += a.charAt(i) -'0';
}
System.out.print(sum);
}
}
▶ 이번 문제를 풀며 느낀 점.
charAt() 메소드를 몰라서 찾아봤는데, 다양한 풀이가 있었음.
특히 입출력 관련해서 BufferedReader을 쓰는 풀이가 자주 보임.
다음 문제부터는 BufferedReader를 시도해봐야 겠다고 생각.
'알고리즘' 카테고리의 다른 글
[백준] 입출력 - 2741, 2742, 2739 (0) | 2023.02.07 |
---|---|
[백준] 입출력 - 11721번, 열 개씩 끊어 출력. charAt(); (1) | 2023.01.20 |
[백준] 입출력 - 11719. 그대로 입력. (0) | 2023.01.17 |
[백준] 입출력 - 11021, 11022, 11718(서칭). (1) | 2023.01.17 |
[백준] 입출력 - 10951, 10952, 10953(모두 서칭). A+B 응용. (0) | 2023.01.15 |