[백준] 8595번 히든 넘버 Java 문제 풀이

2022. 2. 3. 12:09알고리즘/백준

728x90
반응형

문제

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

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

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

입력

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

출력

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


예제 입력 1

14
ab13c9d07jeden

예제 출력 1

29


문제풀이

import java.io.*;
import java.math.BigDecimal;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

interface Main{
    static void main(String[]a) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int n = Integer.parseInt(br.readLine());
        BigDecimal sum = new BigDecimal("0");
        String str = br.readLine();
        String regex = "([\\d]+)";
        Matcher matcher = Pattern.compile(regex).matcher(str);
        while(matcher.find()) {
          sum = sum.add(new BigDecimal(matcher.group()));
        }
        bw.write(sum+"");        
        bw.flush(); 
      }
}

그냥 숫자들은 다 더해주면 됩니다. 음수나 소수가 없으므로 신경 쓸 게 없습니다.

 

출처 : https://www.acmicpc.net/problem/8595

 

8595번: 히든 넘버

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

www.acmicpc.net

 

728x90
반응형