반응형
https://www.acmicpc.net/problem/11720
첫줄에 숫자의 갯수 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을 이용.
반응형
'알고리즘 > 백준(BAEKJOON)' 카테고리의 다른 글
[1157 자바] 단어공부: 알고리즘/ 백준 (0) | 2021.09.23 |
---|---|
[10809 자바] 알파벳 찾기 [백준] (0) | 2021.09.16 |
4673 셀프넘버 JAVA 백준 문제풀이 (0) | 2021.09.13 |
1차원 배열 8958/자바/Scanner/BufferReader (0) | 2021.08.21 |
1546/평균/1차원 배열/자바/JAVA (0) | 2021.03.15 |