🧩 문제
Do it 알고리즘 코딩 테스트 자바편(구판) 001번
https://www.acmicpc.net/problem/11720

첫 문제는 숫자의 합을 구하는 간단한 문제이다.
우선 책에 있는 해석을 보기 전 먼저 스스로 풀어보았다.
💻 풀이
import java.util.Scanner;
import java.lang.String;
public class P11720_숫자의합 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String numbers = sc.next();
int sum = 0;
for (int i = 0; i < numbers.length(); i++){
sum += Integer.parseInt(String.valueOf(numbers.charAt(i)));
}
System.out.println(sum);
}
}
스캐너로 숫자의 개수를 입력받고 String으로 숫자들을 입력받아 for문을 돌면서 문자열의 각각을 char로 바꾸고 그걸 정수형으로 변환해서 sum에 추가하고 출력했다.
결과 자체는 정답이지만 좀 더 간단한 답이 있을 것 같아 책을 보니 비슷하지만 약간 다르게 풀고 있었다.
그래서 두 풀이를 합쳐 최대한 간단하게 다시 구현해 보았다.
import java.util.Scanner;
import java.lang.String;
public class P11720_숫자의합 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String numbers = sc.next();
int sum = 0;
for (int i = 0; i < numbers.length(); i++){
sum += numbers.charAt(i)-'0'; // 좀 더 간단하게 변환
}
System.out.println(sum);
}
}
for문 안의 코드를 좀 더 간단하게 변환했다. char형을 정수형으로 변환할 때는 `- '0'`을 하면 된다는 것을 잊고 있었다. 그래서 복잡하게 `Integer.parseInt(String.valueOf(numbers.charAt(i)))`으로 구현던 것이다.
📊 시간 복잡도 및 결과
⏱️ 시간 복잡도
입력받은 문자열 numbers의 길이만큼 for문이 한 번 실행되기 때문에 시간 복잡도는 O(n)이다.
for문 내부의 동작 `numbers.charAt(i)`와 뺄셈 연산(`-'0'`)은 상수 시간(O(1))이므로 n * O(1) = O(n)이다.
✅ 제출 결과

끝!
'CS > Do it 알고리즘 코딩테스트 (자바편)' 카테고리의 다른 글
| [백준] 2018: 수들의 합 5 - JAVA(자바) (0) | 2026.03.04 |
|---|---|
| [백준] 1546: 평균 - JAVA(자바) (1) | 2026.02.23 |
| Do it 알고리즘 코딩 테스트 자바편(2022년 구판) 시작! (0) | 2026.02.22 |