Algorithm

[백준] 11720번 숫자의 합

orieasy1 2024. 5. 6. 02:49

알고리즘 판다 1주차 문제

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

 

배열과 리스트 파트 문제

 

 

 

처음 문제 풀 때 고민했던 것은 숫자들을 어떤 형식을 사용해서 입력받아야하느냐였던 것 같다.

결국 숫자들을 쪼개야하는데 배열을 쓰는 것 보다는 String으로 받아서 메서드를 이용해 쪼개는게 빠르고 편리하지 않을 까 생각했다.

그래서 코드를 다음과 같이 생각해봤다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();

        String numbers = scanner.next();

        int sum = 0;
        for(int i = 0; i <numbers.length(); i++){
            sum += numbers.charAt(i) - '0';
        }

        System.out.println(sum);
    }
}

 

 

두 번째 코드는 강의에서 알려준 방식인데, toCharArray() 메소드를 이요하여 문자배열로 변환한 뒤 반복문을 통해 각 문자를 숫자로 변환하는 형태의 코드이다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();

        String numbers = scanner.next();
        char[] number = numbers.toCharArray();

        int sum = 0;
        for(int i = 0; i <number.length; i++){
            sum += number[i] - '0';
        }

        System.out.println(sum);
    }
}

 

 

밑에 표에서 밑에 코드가 첫번째 코드이고 위에 코드가 두번째 코드인데 메모리, 해결시간 모두 비슷하다.