반응형
<문제 분석>
(방법 #1)
숫자가 문자열 한개로 입력된다. 입력 받은 문자열을 char 배열로 잘라서 정수형 배열에 나눠 담아야 한다.
나눠담은 정수형 배열을 순차적으로 더하면 된다.
(방법 #2)
정수 하나로 받아서 MOD를 사용해서 각 자리수를 계산할 수 있다.
<코드 구현>
import java.util.*;
import java.io.*;
/*
[백준] 11720번 - 숫자의 합 (Java)
*/
public class Main {
static int N, number;
static int A[];
void InputData() {
Scanner in = new Scanner(System.in);
N = in.nextInt();
String str = in.next();
A = new int[N];
for (int i=0; i<N; i++) {
A[i] = str.charAt(i) - '0';
}
number = Integer.parseInt(str);
}
// 1. 재귀함수 사용
int DFS(int n, int sum) {
if (n == N) return sum;
sum += A[n];
return DFS (n+1, sum);
}
// 2. 반복문 사용
int Loop(int sum) {
for (int i=0; i<N; i++) {
sum += A[i];
}
return sum;
}
// 3. 수학적 풀이
int Mod(int sum) {
int mod = 1;
for (int i=1; i<N; i++) {
mod *= 10;
}
while (N > 0) {
sum += number/mod;
number = number%mod;
mod /= 10;
N--;
}
return sum;
}
void Solve() {
int num = 0;
//System.out.println(DFS(0, num));
//num = 0;
//System.out.println(Loop(num));
//num = 0;
System.out.println(Mod(num));
}
public static void main(String[] args) {
Main m = new Main();
m.InputData();
m.Solve();
}
}
<제출 결과>
반응형
'알고리즘 PS > 백준 알고리즘' 카테고리의 다른 글
[백준] 9935번 - 문자열 폭발 (Java) (0) | 2022.09.21 |
---|---|
[백준] 14490번 - 백대열 (Java) (0) | 2022.09.21 |
[백준] 1436 - 영화감독 숌 (Java) (0) | 2022.09.19 |
[백준] 10872번 - 팩토리얼 (Java) (0) | 2022.09.19 |
[백준] 1541번 - 잃어버린 괄호 (Java) (0) | 2022.09.19 |
댓글