본문 바로가기
PS/BOJ

[자바] 백준 10822 - 더하기 (java)

by Nahwasa 2022. 10. 28.

 문제 : boj10822


 

필요 알고리즘 개념

  • 문자열, 파싱, 구현
    • 문자열을 일정한 규칙대로 파싱해서 원하는 데이터를 얻을 수 있다면 풀 수 있다.

※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.

 


 

풀이

  "10,20,30,50,100" 형태로 ','를 기준으로 작성되어있는 각 숫자들을 파싱해서 뽑아낼 수 있으면 모두 더해버리면 된다.

자바의 경우 String에 대해 split 함수로 파싱해도 되고, StringTokenizer로 파싱해도 된다. 후자가 좀 더 빠른편이다. 이하 코드는 StringTokenizer를 사용한 파싱 코드이다. 알고리즘 문제 풀이야 중요한 클래스이므로 이참에 사용법을 익혀두자.

 


 

코드 : github

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

public class Main {
    private void solution() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), ",");
        int sum = 0;
        while (st.hasMoreTokens()) {
            sum += Integer.parseInt(st.nextToken());
        }
        System.out.println(sum);
    }

    public static void main(String[] args) throws Exception {
        new Main().solution();
    }
}

댓글