본문 바로가기
백준

[백준 11720] 숫자의 합

by 소금_msg 2022. 8. 10.

 

 

쉬워보이지만 약간의 char타입부분에서 까다로웠다.

 

첫번째 입력에서 숫자의 개수N을 입력받고

두번째 입력에서 문자열을 입력받아 N개로 쪼개서 해당 수의 합을 구해주면 된다.

(두번째 입력받은 것은 문자열덩어리이기 때문에 

12345 이렇게 입력받으면 쪼개고 Integer로 형변환을 해주고 합을 구해주기.)

 

문자열 자르는 방법에는 split(), charAt() 가 있다. 어차피 한글자씩 자르는거기 때문에 간단한 charAt()을 사용했다.

그런데 charAt()을 사용하니까 문자열 타입이 char타입으로 변해버렸다 ㅜㅜ

그래서 자른 값을 Integer.valueOf()로 형변환하려고 하니까 String인자가 아니기 때문에 오류..

 

그래서 구글링하던중 발견한글..!

 String.charAt 을 String으로 받는 방법 

https://wakestand.tistory.com/611

 

for 문 돌리면서 한글자씩 CharAt으로 뽑은 다음에

String.valueOf(CharAt)를 한번 더 문자열로 변환해주는 방법!

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] arg){

        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();   //입력받을 숫자의 개수
        String num = sc.next(); //입력받은 문자열
        List<String> list = new ArrayList<String>();    //String타입 List
        int sum =0;

        //문자열을 N회 쪼개서 배열에 넣음
        for(int i=0;i<N;i++){
            //int 타입의 number를 String으로 만든 후
            //charAt으로 Char타입으로 1글자 꺼내온 뒤 String으로 다시 변환
            list.add(String.valueOf(String.valueOf(num).charAt(i)));
        }
        //String타입 list를 int타입 문자열로 바꾸기
        List<Integer> intList = new ArrayList<>();
        for (String s: list){
            intList.add(Integer.parseInt(s));
        }

        //intlist의 총합구하기
        for(int j=0;j<N;j++){
            sum += intList.get(j);
        }
        System.out.println(sum);

    }

}

 

 

뭔가 코딩보다 주석이 더 요란한 느낌...

'백준' 카테고리의 다른 글

[백준 2941] 크로바티아 알파벳  (0) 2022.08.16
[백준 5622] 자바 다이얼  (0) 2022.08.14
[백준 25304] 영수증 자바  (0) 2022.08.08
[백준 8958] OX퀴즈 자바  (0) 2022.08.07
[백준 1546] 자바 평균  (0) 2022.08.03