```
백준 8595번 히든 넘버 JAVA 구현해보기
```

이번 글을 통해 배워갈 내용
- 백준 8595번 풀이
https://www.acmicpc.net/problem/8595
8595번: 히든 넘버
첫째 줄에 단어의 길이 n (1 ≤ n ≤ 5,000,000)이 주어진다. 둘째 줄에는 단어가 주어진다. 단어는 알파벳 대/소문자와 숫자(0-9)로 이루어져 있다.
www.acmicpc.net
백준 8595번 히든 넘버는
난이도 브론즈 등급의 문제로서
단어의 길이와 단어가 입력되면
해당되는 단어 내부에
6자리 이하의 연속된 숫자외에 글자로 구분된 숫자들의 합을 구해주면 됩니다.
없을 경우 0을 출력해주면 됩니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
문자열을 Char 배열로 만든 다음
순회하면서 0과 9 사이에 있는 문자열이면
임시 버퍼 문자열에 더하고
0과 9가 아닌 다른 문자가 나오면 버퍼 내부에 있는 숫자를 Long 타입으로 parse 해주고
총합에 더해주고 임시 버퍼 문자열을 비워줍니다.
임시 버퍼 문자열 대신 자릿수 숫자를 활용해서 사용하면 1.5 정도 속도가 빨라지는 것을 확인했습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
// BufferedReader Object 생성
static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
StringBuilder sb = new StringBuilder();
br.readLine();
long sum = 0;
for (char ch : br.readLine().toCharArray()) {
if (ch >= '0' && ch <= '9') {
sb.append(ch);
} else {
if (sb.length() > 0 && sb.length() <= 6) {
sum += Long.parseLong(sb.toString());
}
sb.setLength(0);
}
}
if (sb.length() > 0 && sb.length() <= 6) {
sum += Long.parseLong(sb.toString());
}
// 출력
System.out.print(sum);
}
}
//codemasterkimc.tistory.com [김씨의 코딩 스토리]
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
728x90
'Java > Java 알고리즘' 카테고리의 다른 글
| 백준 10821번 정수의 개수 JAVA 구현해보기 (0) | 2022.05.14 |
|---|---|
| 백준 9093번 단어 뒤집기JAVA 구현해보기 (0) | 2022.05.14 |
| 백준 9536번 여우는 어떻게 울지? JAVA 구현해보기 (0) | 2022.05.14 |
| 백준 5363번 요다 JAVA 구현해보기 (0) | 2022.05.13 |
| 백준 2743번 단어 길이 재기 JAVA 구현해보기 (0) | 2022.05.13 |