본문 바로가기
IT 공부/알고리즘

[JAVA] 단어 거꾸로 출력하기(StringBuilder, 값 교환)

by 해모해모 2023. 12. 20.
728x90
반응형

[문제]
N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성

[입력]
첫 줄에 자연수 N(3<=N<=20)
두 번째 줄부터 N개의 단어가 각 줄에 하나씩, 단어는 영어 알파벳으로만 구성

[출력]
N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력

[입력 예시]
2
haemo
dev

[출력 예시]
omeah
ved
첫번째 풀이
import java.util.*;
  
public class Main {
    public ArrayList<String> solution(int n, String[] str){
        ArrayList<String> answer = new ArrayList<>();
        for(String x : str){
            String temp = new StringBuilder(x).reverse().toString();
            answer.add(temp);
        }
        return answer;
    }
    public static void main(String[] args){
        Main T = new Main();
        Scanner sc=new Scanner(System.in);
        int n = sc.nextInt();
        String[] str = new String[n];
        for(int i=0; i<n; i++){
            str[i] = sc.next();
        }
        for(String x : T.solution(n, str)){
            System.out.println(x);
        }

    }
}
두번째 풀이
import java.util.*;
  
public 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 temp = s[lt];
                s[lt] = s[rt];
                s[rt] = temp;
                lt++;
                rt--;
            }
            String temp = String.valueOf(s);
            answer.add(temp);
        }
        return answer;
    }
    public static void main(String[] args){
        Main T = new Main();
        Scanner sc=new Scanner(System.in);
        int n = sc.nextInt();
        String[] str = new String[n];
        for(int i=0; i<n; i++){
            str[i] = sc.next();
        }
        for(String x : T.solution(n, str)){
            System.out.println(x);
        }

    }
}
728x90
반응형

댓글