Algorithm/inflearn

단어 뒤집기

마닐라 2021. 9. 3. 17:50

1.StringBuilder의 reverse() 메서드 사용

import java.util.ArrayList;
import java.util.Scanner;

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();
            //reverse 메서드를 사용하면 바로 뒤집힘 + String화 시켜야함
            answer.add(tmp);
        }

        return answer;
    }

    public static void main(String[] args) {
        Main T = new 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);
        }
    }
}

 

2.문자 배열 사용하여 교환

import java.util.ArrayList;
import java.util.Scanner;

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); //다시 String화 시키기
            answer.add(tmp);

        }

        return answer;
    }

    public static void main(String[] args) {
        Main T = new 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);
        }
    }
}