알고리즘/백준(BAEKJOON)

백준 /11720 자바/숫자의 합

jojelly 2021. 9. 15. 07:50
반응형

https://www.acmicpc.net/problem/11720

 

 

11720번: 숫자의 합

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

www.acmicpc.net

 

 

 첫줄에 숫자의 갯수 N을 받고 다음줄에 N개의 숫자가 공백없이 주어진다.

두번째 줄의 문자열로 받은 후 -> 문자로잘라주고 -> 숫자로 변경해서 더해주는게 핵심이다.

 

 

 

[풀이]

1.Scanner를 통해 받은 숫자의 갯수를 N에 저장

2.N개의 연속된 숫자들을 스트링 타입의 number에 저장

3.for문을 통해 N개의 갯수를 돌면서 sum에 누적을 해준다.

(나는 number에 각 위치별문자를 String.valueOf로 변환하고 다시 Integer로 parseInt를 해서 누적해줬는데 

이 방법도 가능은 하지만 후에 검색을 해보니 아스키 코드를 이용해서 -'0' 또는 -48을 해주는것이 더 효율적이었다.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.Scanner;
 
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        String number = sc.next();
        sc.close();
        int sum = 0;
        for (int i = 0; i<N; i++){
            sum += Integer.parseInt(String.valueOf(number.charAt(i)));
//            sum += number.charAt(i)-'0'; //알게된 방법, 아스키 코드인 '0'을 뺴줌 또는 48빼기
        }
        System.out.println(sum);
    }
}
 
cs

 

아스키 코드로 0을 48이기 때문에 -48을 이용.

반응형