문제 : 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();
}
}
'PS > BOJ' 카테고리의 다른 글
[자바] 백준 10865 - 친구 친구 (java) (0) | 2022.11.02 |
---|---|
[자바] 백준 25703 - 포인터 공부 (java) (0) | 2022.11.02 |
[자바] 백준 13567 - 로봇 (java) (0) | 2022.10.25 |
[자바] 백준 5717 - 상근이의 친구들 (java) (0) | 2022.10.25 |
[자바] 백준 22864 - 피로도 (java) (0) | 2022.10.25 |
댓글