✔ 숫자의 합
문제 분석하기
N의 범위가 100자리까지 받아야 하지만 10자리까지 가능한 int형, 19자리까지 가능한 long형과 같은 숫자형으로는 담을 수 없음
그러므로 문자열 형태로 입력값을 받은 후 이를 문자 배열로 변환하고, 문자 배열값을 순서대로 읽으면서 숫자형으로 변환하여 더함
문자 배열값에서 숫자형으로 변환할 때는 아스키코드를 이용하여 '1' - 48 또는 '1' - '0'과 같이 연산함
손으로 풀어보기
- 숫자의 개수만큼 입력받은 값을 String형으로 저장함
- String형으로 입력받은 값을 char[] 형으로 변환함
- 인덱스 0부터 접근하여 끝까지 배열을 탐색하며 각 값을 정수형으로 변환하고 결과값에 더하여 누적함
슈도코드 작성하기
N값 입력받기
길이 N의 숫자를 입력받아 String형 변수 sNum에 저장하기
sNum을 다시 char[]형 변수 cNum에 변환하여 저장하기
int형 변수 sum 선언하기
for(cNum 길이만큼 반복하기) {
배열의 각 자릿값을 아스키코드를 이용하여 정수형으로 변환하며 sum에 더하여 누적하기
}
sum 출력하기
코드 구현하기
/**
* 11720) 숫자의_합
*/
public class D001_11720 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// N값 입력받기
int N = sc.nextInt();
// 길이 N의 숫자를 입력받아 String형 변수 sNum에 저장하기
String sNum = sc.next();
// sNum을 다시 char[]형 변수 cNum에 변환하여 저장하기
char[] cNum = sNum.toCharArray();
// int형 변수 sum 선언하기
int sum = 0;
// cNum 길이만큼 반복하기
for (int i = 0; i < cNum.length; i++) {
// 배열의 각 자릿값을 아스키코드를 이용하여 정수형으로 변환하며 sum에 더하여 누적하기
sum += cNum[i] - '0';
}
// sum 출력하기
System.out.print(sum);
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[2164] 카드2 (0) | 2023.06.29 |
---|---|
[1874] 스택 수열 (0) | 2023.06.29 |
[12891] DNA 비밀번호 (0) | 2023.06.28 |
[2018] 수들의 합 5 (0) | 2023.06.28 |
[11649] 구간 합 구하기 4 (0) | 2023.06.27 |