import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine()); //문자열을 정수로 변환, 숫자의 개수
int sum = 0; //합계
String str = br.readLine(); //문자열로 숫자 입력
for (int i = 0; i < N; i++){
sum += str.charAt(i) - 48; //문자를 정수로 변환
}
System.out.println(sum);
br.close();
}
}
특이한 점은 문자열을 정수로 변환할때 48을 뺀다는 거다.
java에서 문자는 유니코드 값으로 저장된다.
유니코드에서 0부터 9까지의 코드 값은 48부터 57까지 이다.
문자열에서 숫자로 변환하려면 해당 문자의 유니코드 값에서 48을 빼면(0의 유니코드값) 정수가 된다.
신기하다...
'자료구조 > 문제풀이' 카테고리의 다른 글
[백준 JAVA] 9996 한국이 그리울 땐 서버에 접속하지 (1) | 2024.07.02 |
---|---|
[백준 JAVA] 10798 세로읽기 (1) | 2024.07.01 |
[백준 JAVA] 9046번 복호화 (1) | 2024.07.01 |
[백준 JAVA] 2566 최댓값 (0) | 2024.06.29 |
코테 스터디 시작 (0) | 2024.06.28 |