본문 바로가기
알고리즘 문제풀이

[알고리즘/인프런]1-9 숫자만 추출(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의)

by jeonghaemin 2021. 5. 6.
728x90

인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 예습 풀이 코드, 강의에서 설명하는 풀이 코드를 정리하고 있습니다.

내 풀이

  • Character.isDigit() 메서드를 사용하여 숫자 문자를 판별하여 풀이
import java.io.*;

public class Main {

    public int solution(String s) {
        StringBuilder sb = new StringBuilder();

        for (char c : s.toCharArray()) {
            if (Character.isDigit(c)) {
                sb.append(c);
            }
        }

        return Integer.parseInt(sb.toString());
    }

    public static void main(String[] args) throws IOException {
        Main T = new Main();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String s = br.readLine();
        System.out.println(T.solution(s));
    }
}

강의 풀이

(2가지 방법으로 풀이하셨는데 그 중 하나는 내 풀이 방법과 동일)

  • 아스키코드를 활용하여 풀이
  • 문자 '0'~'9' -> 아스키코드 48~57
import java.io.*;

public class Main {

    public int solution(String s) {
        int answer = 0;

        for (char c : s.toCharArray()) {
            if (c >= 48 && c <= 57) { //'0'~'9' -> 아스키 코드 48 ~ 57
                answer = answer * 10 + (c - 48);
            }
        }

        return answer;
    }

    public static void main(String[] args) throws IOException {
        Main T = new Main();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String s = br.readLine();
        System.out.println(T.solution(s));
    }
}

댓글