1. 데이터 타입 때문에 틀렸다.

2. for 문 밖에서 데이터가 나올걸 예측하지 못해 틀렸다.

3. 쉬운 문제라고, 기본을 무시했다.

import java.util.*;
import java.io.*;
/**
* https://www.acmicpc.net/problem/8595
* BOJ 백준온라인져지 8595 히든 넘버 풀이
*/
public class Main {
private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main (String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String str = br.readLine();
String temp = "";
long sum = 0;
for (int i = 0; i < N; i++) {
if (str.charAt(i) <= '9' && str.charAt(i) >= '0') temp += str.charAt(i);
else {
if (temp.length() > 0) {
sum += Long.parseLong(temp);
temp = "";
}
}
}
if (temp.length() > 0) {
sum += Long.parseLong(temp);
temp = "";
}
bw.write(String.valueOf(sum));
bw.flush();
}
}
view raw Main.java hosted with ❤ by GitHub

문제

단어에 숫자가 숨어있다. 이 숫자를 히든 넘버라고 한다. 알파벳 대/소문자와 숫자로 이루어진 단어가 주어졌을 때, 모든 히든 넘버의 합을 구하는 프로그램을 작성하시오.

단어와 히든 넘버는 아래와 같은 성질을 갖는다.

  • 연속된 숫자는 한 히든 넘버이다.
  • 두 히든 넘버 사이에는 글자가 적어도 한 개 있다.
  • 히든 넘버는 6자리를 넘지 않는다.

입력

첫째 줄에 단어의 길이 n (1 ≤ n ≤ 5,000,000)이 주어진다. 둘째 줄에는 단어가 주어진다. 단어는 알파벳 대/소문자와 숫자(0-9)로 이루어져 있다. 

출력

입력으로 주어진 단어에 숨어있는 모든 히든 넘버의 합을 출력한다. 만약, 히든 넘버가 없는 경우에는 0을 출력한다.


+ Recent posts