Java/Java 알고리즘

백준 9093번 단어 뒤집기JAVA 구현해보기

kimc 2022. 5. 14. 13:02

```

백준 9093번 단어 뒤집기 JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 9093번 풀이

https://www.acmicpc.net/problem/9093

 

9093번: 단어 뒤집기

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는

www.acmicpc.net

 

백준 9093번 단어 뒤집기는

난이도 브론즈 등급의 문제로서

 

테스트 케이스만큼

문장이 주어지고 각문장에 단어들을 각각 뒤집어서 출력해주면 되는 문제입니다.

 


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


 

IntStream을 사용해서

입력을 받은 테스트 케이스만큼 반복해서

문장을 입력받고

해당되는에 단어들을 뒤집어서 출력해보았습니다.

단어 뒤집는 부분을 배열 처리한 게 첫 번째 답이고

두 번째 답은 StringTokenizer를 사용해서 시간을 측정해보았습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.stream.IntStream;

public class Main {
    // BufferedReader Object 생성
    static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException {

        int testCaseCnt = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();

        // 테스트 케이스만큼 반복
        // 각 테스트 케이스마다 단어들을 배열처리
        // 단어마다 뒤집어서 출력에 추가
        IntStream.range(0, testCaseCnt).forEach((testCase)->{
            try {
                String[] words = br.readLine().split(" ");
                IntStream.range(0, words.length).forEach((idx)->{
                    char[] word = words[idx].toCharArray();
                    final int wordLength = word.length;
                    IntStream.rangeClosed(1, wordLength).forEach(idx2->{
                        sb.append(word[wordLength-idx2]);
                    });
                    sb.append(" ");
                });
                sb.setLength(sb.length() - 1);
                sb.append("\n");
            } catch (IOException e) {
                e.printStackTrace();
            }
        });

        sb.setLength(sb.length() - 1);
        // 출력
        System.out.print(sb);
    }
}
//codemasterkimc.tistory.com [김씨의 코딩 스토리]

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.stream.IntStream;

public class Main {
    // BufferedReader Object 생성
    static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException {

        int testCaseCnt = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();

        // 테스트 케이스만큼 반복
        // 각 테스트 케이스마다 단어들을 배열처리
        // 단어마다 뒤집어서 출력에 추가
        IntStream.range(0, testCaseCnt).forEach((testCase)->{
            try {
                StringTokenizer st = new StringTokenizer(br.readLine());
                int tokenLength = st.countTokens();
                IntStream.range(0, tokenLength).forEach((idx)-> sb.append(new StringBuilder(st.nextToken()).reverse().append(" ")));
                sb.setLength(sb.length() - 1);
                sb.append("\n");
            } catch (IOException e) {
                e.printStackTrace();
            }
        });

        sb.setLength(sb.length() - 1);
        // 출력
        System.out.print(sb);
    }
}
//codemasterkimc.tistory.com [김씨의 코딩 스토리]

 

 

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

728x90