단어 뒤집기

문제

설명

N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요.

입력

첫 줄에 자연수 N(3<=N<=20)이 주어집니다. 두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 단어는 영어 알파벳으로만 구성되어 있습니다.

출력

N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.

예시 입력 1

  3
  good
  Time
  Big

해결방법

  • char 배열로 변환 후, 한 글자 씩 붙인다.
  • StringBuilder를 사용하여 해결한다.
    StringBuilder sb = new StringBuilder();
    // 단어가 거꾸로 append 됨.
    sb.append(x).reverse();
    

코드

  • StringBuilder 를 활용하는 방법

    import java.util.*;
      
    class Main {
        public ArrayList<String> solution(int n, String[] str) {
            ArrayList<String> answer = new ArrayList<>();
            for (String x : str) {
                String tmp = new StringBuilder(x).reverse().toString();
                answer.add(tmp);
            }
            return answer;
        }
      
        public static void main(String[] args) {
            Main.Main T = new Main.Main();
            Scanner kb = new Scanner(System.in);
            int n = kb.nextInt();
            String[] str = new String[n];
            for (int i = 0; i < n; i++) {
                str[i] = kb.next();
            }
            for (String x : T.solution(n, str)) {
                System.out.println(x);
            }
        }
    }
    
  • 배열로 변환 후 해결하는 방법

    import java.util.*;
      
    class Main {
        public ArrayList<String> solution(int n, String[] str) {
            ArrayList<String> answer = new ArrayList<>();
            for (String x : str) {
                char[] s = x.toCharArray();
                int lt = 0, rt = x.length() - 1;
                while (lt < rt) {
                    char tmp = s[lt];
                    s[lt] = s[rt];
                    s[rt] = tmp;
                    lt++;
                    rt--;
                }
                String tmp = String.valueOf(s);
                answer.add(tmp);
            }
            return answer;
        }
      
        public static void main(String[] args) {
            Main.Main T = new Main.Main();
            Scanner kb = new Scanner(System.in);
            int n = kb.nextInt();
            String[] str = new String[n];
            for (int i = 0; i < n; i++) {
                str[i] = kb.next();
            }
            for (String x : T.solution(n, str)) {
                System.out.println(x);
            }
        }
    }
    

© 2024. Chiptune93 All rights reserved.