알고리즘/백준(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을 이용.
반응형