Java 문제풀이 - 숫자의 합 구하기

Minseol·2023년 3월 4일
0

문제

N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

출력

입력으로 주어진 숫자 N개의 합을 출력한다.

예제 입/출력

내 풀이

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		int sum = 0;
		Scanner sc = new Scanner(System.in);
		
		int strLength = sc.nextInt();
		String inputStr = sc.next();
		
		for (int i = 0; i < strLength; i++) {
			sum += inputStr.charAt(i) - '0';
		}
		
		System.out.println(sum);
	}
}

예시 풀이

import java.util.Scanner;
public class P11720_숫자의합 {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    // String 변수로 받아 배열 변수로 변환하기
    String sNum = sc.next();
    char[] cNum = sNum.toCharArray();
    int sum = 0;
    for (int i = 0; i < cNum.length; i++) {
      sum += cNum[i] - '0'; // 문자 값을 정수 형으로 변환하여 더해주기
    }
    System.out.print(sum);
  }
}

리뷰

먼저 처음에 문자열을 sc.next()가 아니라 sc.nextLine()으로 입력받았는데, 계속하여 문자열을 제대로 갖고 오지 못하는 문제가 발생하였다.

그 이유를 찾아보니 아래 내용과 같았다.
https://velog.io/@alswp2274/JAVA-next-nextLine%EC%9D%98-%EC%B0%A8%EC%9D%B4

예제 풀이와 비교하면, 내 풀이는 따로 string을 char array로 변환하지 않고 바로 charAt()으로 바로 sum에 추가하였다.

profile
귀여운 설이에양

0개의 댓글