[단계별로 풀어보기] 11654번 아스키코드 (문자열)

Jun_Gyu·2023년 3월 20일
0

BackJoon Online Judge

목록 보기
12/18

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//		StringTokenizer st = new StringTokenizer(br.readLine());

		int n = Integer.parseInt(br.readLine());
		String str = br.readLine();

		int sum = 0;
		for (int i = 0; i <n; i++) {
			sum += str.charAt(i)-'0';
		}
		System.out.println(sum);
	}
}

이번 문제는 첫번째 줄에 입력할 수N의 갯수, 두번째 줄에는 N개만큼의 숫자들이 칸 구분없이 나열되어있으며, 이 두번째 줄의 각 숫자들을 더한값을 출력하는 문제이다.

처음에는 StringTokenizer를 이용하여 ""로 각 숫자들을 구분하여 더해주려고 했으나, 지난번 사용했던 char형태를 통해서 값을 구하도록 코드를 변경했다.

먼저 첫줄에 int n을 입력받아 반복문에 적용하였고, 두번째 줄에 입력받은 숫자를 String형태로 입력받아 charAt(i)를 이용하여 각각의 숫자들에 대해서 아스키코드를 구한 다음, 0의 ASCII 코드 10진수만큼 빼준 값들을 모두 더하여 sum에 저장한 후, 그대로 출력하여 문제를 해결하였다.
(0의 ASCII코드는 "48"이다.)


중요!!

작은따옴표 ``로 문자나 숫자를 감싸게 되면, 10진수의 ASCII코드로 변환하여 값이 나타나게 된다.

profile
시작은 미약하지만, 그 끝은 창대하리라

0개의 댓글