문제
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
출력
입력으로 주어진 숫자 N개의 합을 출력한다.
처음 생각
모든 숫자가 한 자리 수이므로, ""로 구분한 후 더한다
내가 푼 방법
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));
int digit = Integer.parseInt(br.readLine());
int sum =0;
String num = br.readLine(); // 숫자를 String으로 받아서
String[] str = num.split(""); // 쪼개서 배열에 넣기 split
for(int i=0; i<num.length(); i++) {
sum += Integer.parseInt(str[i]); // int 로 바꿔서 합하기
}
System.out.println(sum);
}
}
다른 풀이
1) bufferedReader
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));
br.readLine(); //반복문에서 쓰이지 않으므로 N은 받기만 한다
int sum =0;
String num = br.readLine();
// String을 byte배열로 반환하는 getBytes()
for(byte n : num.getBytes()) {
sum += (n-'0');
}
System.out.println(sum);
}
}
getBytes() : String -> byte 배열
2) Scanner
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
System.out.println("start");
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
String nums = sc.next();
int sum=0;
for(int i=0; i<N; i++) {
sum += nums.charAt(i)-'0';
}
System.out.println(sum);
}
}
charAt() : String -> 해당 인덱스의 char값
'백준 풀이' 카테고리의 다른 글
[백준 풀이_Java] 4344 평균은 넘겠지 (0) | 2021.08.27 |
---|---|
[백준 풀이_Java] 10870 피보나치수5 (0) | 2021.08.19 |
[백준 풀이_Java] 3460 이진수 (0) | 2021.08.18 |
[백준 풀이_Java] 2839 설탕배달 (0) | 2021.08.04 |
[백준 풀이_Java] 2501 약수구하기 (0) | 2021.07.28 |