https://www.acmicpc.net/step/7
문제
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
풀이 과정 / 배운점
import java.io.*;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(bf.readLine());
String S = bf.readLine();
int sum = 0;
// char형을 int형으로 변환하면 아스키 코드가 나오므로 String형을 int형으로 변환한다.
for(int i = 0; i < N; i++) {
String word = String.valueOf(S.charAt(i));
sum += Integer.parseInt(word);
}
System.out.println(sum);
}
}
char형을 String형으로 변환시켜준 다음 int로 변환하였다.
먼저 char형을 int형으로 변환하면 아스키 코드가 나온다.
다른 사람들의 풀이를 보았는데, 여기서 다른 클래스의 변환 메소드를 사용하는 것이 아닌 아스키코드를 이용할 수도 있었다.
S.charAt(i) - '0'
0의 아스키코드는 48이고 그 후로는 1씩 증가한다.
아스키코드여도 '0'을 빼주면 1부터 시작하는 셈이다.
느낀점
확실히, 알고리즘 공부를 시작하면서 자료형의 특징이나 클래스들을 많이 알게되고, 복습하게 되는 것 같다.