avatar
wooni-develog

[Baekjoon]숫자의 합(11720번)

배열 관련 숫자의 합 문제를 풀어보자
백준브론즈배열코딩테스트알고리즘
Jun 16
·
4 min read

본 포스팅은 백준 온라인 저지 에서 제공하는 문제의 풀이를 비상업적 목적으로 게시하였습니다.

ℹ️ 문제 정보

https://www.acmicpc.net/problem/28432

until-521until-522

🔍 문제 분석

  • 입력받는 숫자의 개수 N이 1≤N≤100 이므로 최대 100자리의 N은 int,long 자료형으로 저장할 수 없다. 문자열 형태로 저장해야 한다.

  • 문자열로 저장 후 각각의 문자로 분리한다. → 문자열을 문자의 배열로 분리한다.

  • 각각의 문자를 숫자로 변환한다.

  • 변환된 숫자들을 더한다.

🖊️ 구체화 하기

  1. 입력받은 숫자의 개수만큼 String으로 저장한다.

  2. String으로 입력받은 값을 char[]형으로 변환한다.

  3. 인덱스 0부터 배열을 탐색하며 각 값을 정수형으로 변환하고 결과값에 더하여 누적한다.

🗒️ 의사 코드 작성

  1. N 값 입력받기

  2. 길이 N의 숫자를 입력받아 String 변수sNum에 저장하기

  3. sNum을 다시 char[]g형 변수 cNum에 변환하여 저장하기

  4. int 형 변수 sum선언하기

  5. for(cNum 길이만큼 반복하기) {
    배열의 각 자릿값을 정수형으로 변환하며 sum에 더하여 누적하기
    }

  6. sum 출력

나의 정답 코드

until-523
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*   1. N 값 입력받기
     2. 길이 N의 숫자를 입력받아 String 변수 sNum에 저장하기
     3. sNum을 다시 char[]형 변수 cNum에 변환하여 저장하기
     4. int 형 변수 sum선언하기
     5. for(cNum 길이만큼 반복하기)
     {
     배열의 각 자릿값을 정수형으로 변환하며 sum에 더하여 누적하기
     }
     6. sum 출력
  */
public class 숫자의합구하기11720 {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        String sNum = br.readLine();

        char[] cNum = sNum.toCharArray();
        int sum = 0;

        for (char num : cNum) {
            sum += num - '0'; // *아스키 코드 값을 이용한 문자의 숫자 변환
        }
        System.out.println(sum);
    }
}

🤔 회고

  • 문제 분석구체화의사 코드 작성의 사고 순서를 앞으로도 적용해 봐야겠다.

  • 아스키코드를 사용한 문자의 숫자 변환은 매우 빈번하게 쓰이므로 숙지해 둘 것.

📚 참고자료







백엔드 개발자 취준생 우니입니다.