문제 링크
https://www.acmicpc.net/problem/11720
나의 코드 (java)
import java.util.Scanner;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
// 몇개의 숫자가 들어오는지 받는 변수
int n = sc.nextInt();
// nextInt()에 개행문자 제거
sc.nextLine();
// 공백없는 n개의 숫자 받기
String num = sc.nextLine();
// 각 숫자를 합할 변수
int sum = 0;
for (int i=0; i<n; i++){
// 각 자리수를 chatAt으로 받아서 48를 빼준 값을 합한다.
sum += num.charAt(i) - '0';
}
// 결과 출력
System.out.println(sum);
}
}
이 문제는 String을 받아서 각 자리를 chatAt으로 받아서 48을 빼준 값들을 더하면 됩니다.
여기서 48을 빼는 이유는 아스키코드의 48 값이 숫자로 0인데 만약에 0을 chatAt으로 받게되면 아스키코드 48을 받게 됩니다.
하지만 우리가 필요한 것은 숫자 0이기 때문에 48을 빼면 0이라는 숫자를 받을 수 있기 때문입니다.
'코딩공부 > 백준 (java)' 카테고리의 다른 글
[백준 2675] 문자열 반복 (java) (0) | 2021.07.08 |
---|---|
[백준 10809] 알파벳 찾기 (java) (0) | 2021.07.08 |
[백준 11654] 아스키 코드 (java) (0) | 2021.07.08 |
[백준 1065] 한수 (java) (0) | 2021.07.08 |
[백준 4673] 셀프 넘버 (java) (0) | 2021.07.07 |
댓글