https://www.acmicpc.net/problem/11720
Solve.ac 기준 난이도: 브론즈 2
풀이 방식: 가령 "54321"일 때 그 숫자를 5, 4, 3, 2, 1로 나누어, 5 + 4+ 3 + 2 + 1로 계산해야 하는 문제이다. 그러므로 먼저 문자열 형태로 입력값을 받고, 이를 숫자형으로 변환하여 더하는 방식이 적당하다. 문자열을 숫자형으로 변경하기 위해, 아스키코드를 사용하면 된다. 문자 '1'의 아스키코드 값은 49이므로, 문자 '1'을 숫자 1로 변환하기 위해서는 '1' - 48 또는 '1' - '0'으로 변경하면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import java.util.*; import java.io.*; public class Q11720 { public static void main(String[] args) throws IOException { Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); String S = scanner.next(); int sum = 0; for (int i = 0; i < S.length(); i++) { sum = sum + (S.charAt(i) - '0'); } System.out.println(sum); } } | cs |
'Algorithm (Java) > Data structure' 카테고리의 다른 글
배열과 리스트: 구간합 구하기2 (백준 11660) (2) | 2023.11.09 |
---|---|
배열과 리스트: 구간합 구하기 (백준 11659) (3) | 2023.11.09 |
配列とリスト: 区間の合計 (0) | 2023.11.09 |
배열과 리스트: 숫자의 합 구하기 (백준 1546) (0) | 2023.11.08 |
配列とリスト: 理論編 (0) | 2023.11.08 |