본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1660 : 파싱(parsing) 1

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1660 파싱(parsing) 1 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

정수와 컴마로 이루어진 문자열이 공백없이 입력된다.(최대길이 100글자)

출력

컴마(,)를 분리한 결과를 출력한다.

예시

  • 입력 : 4,52,600,-5,0
  • 출력 : 4 52 600 -5 0

Solution (풀이)

  • 풀이 1 : 메모리 11160, 시간 69
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();

        // ,(컴마)를 기준으로 나누어 배열에 저장한다.
        String[] words = line.split(",");

        // 향상 for문을 이용하여 ,(컴마)를 기준으로 나눈 인덱스 값들은 합친다.
        for (String a : words) {
            sb.append(a).append(" ");
        }

        System.out.println(sb);
        br.close();
    }

}
  • 풀이 2 : 메모리 11164, 시간 68
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // ,(컴마) 기준으로 문자열을 나누어 토큰을 활용
        StringTokenizer st = new StringTokenizer(br.readLine(), ",");
        StringBuilder sb = new StringBuilder();

        // 토큰이 있을때까지 반복
        while(st.hasMoreTokens()) {
            sb.append(st.nextToken()).append(" ");
        }

        System.out.println(sb);
        br.close();
    }

}
  • 풀이 3 : 메모리 11160, 시간 65
public class Answer3 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();

        // 문자열 String 의 메소드인 replace 활용
        sb.append(line.replace(',', ' '));

        System.out.println(sb);
        br.close();
    }

}

Ranking(순위)

반응형