이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 (김태원)의 문제입니다.


문제 설명

 

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static String solution(String str) {
        String result = "";
        for (char c : str.toCharArray())
        {
            if(Character.isDigit(c))
            {
                if(!(c == '0') || !(result.length() == 0)) result += c;
            }
        }
        return result;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println(solution(br.readLine()));
    }
}

 

설명

  • 입력: String str - 사용자로부터 입력받은 문자열.
  • 출력: 숫자로만 구성된 문자열을 반환.
  • 빈 문자열 result를 초기화한다.
  • 입력받은 문자열 str을 문자 배열로 변환하고, 각 문자를 순회한다.
    Character.isDigit(c) 메서드를 사용하여 문자가 숫자인지 확인한다.
    문자가 숫자라면 다음 조건을 확인 -> 문자가 '0'이 아니거나, result가 빈 문자열이 아닌 경우 result에 문자를 추가
  • 결과 문자열 result를 반환한다.