문제 링크
https://www.acmicpc.net/problem/11720
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
// 숫자의 개수
int n = sc.nextInt();
// n개의 숫자를 문자열로 공백 없이 받기
String sNum = sc.next();
// 문자열을 문자 배열로 변환
char[] cNum = sNum.toCharArray();
// n개의 숫자 합 구할 변수
int sum = 0;
// 각 문자를 숫자로 변환하여 합계 변수에 담는다.
for(int i=0; i<cNum.length; i++){
// 문자형 숫자를 실제 정수(int) 값으로 변환하는 부분!
// 해당 문자의 아스키 코드 값에서
// '0'의 아스키 코드 값(48)을 빼서
// 실제 숫자로 변환하는 흐름!
// ex ) '5' - '0'은 53 - 48 = 5가 된다.
sum += cNum[i]-'0';
}
System.out.print(sum);
}
}
정수의 합을 구하기 위해 문자열로 공백 없이 입력 받은 후
문자 배열로 변환하여 각각의 숫자 문자를 정수로 변환하여 합계를 구했다.
아스키 코드에서 같은 의미의 문자와 숫자의 코드 값 차이는 48이다.
예) 문자 '1'은 아스키코드 값이 49이므로 숫자 1로 변환하려면
'1'-48 또는 '1' - '0'과 같이 연산하면 된다.
320x100
'PRACTICE > JAVA' 카테고리의 다른 글
[프로그래머스] rny_string (0) | 2025.02.21 |
---|---|
[백준] 1546번 | 평균 (0) | 2025.02.20 |
[백준] 15969번 | 행복 (0) | 2024.10.04 |
[프로그래머스] 글자 이어 붙여 문자열 만들기 (1) | 2024.10.03 |
[프로그래머스] 문자열의 뒤의 n글자 (1) | 2024.10.03 |