현재

4.단어 뒤집기(StringBuilder, reverse, valueOf()) 본문

알고리즘/기타알고리즘문제

4.단어 뒤집기(StringBuilder, reverse, valueOf())

AAAge 2024. 3. 25. 21:43

<문제>

반복할 횟수랑 문자를 입력하고 뒤집어서 출력하라

예시 입력 1 

3
good
Time
Big

예시 출력 1

doog
emiT
giB

 

 

<힌트>

더보기

<방법1>

stringBuilder,reverse사용

<방법2>

String배열을 toCharArray로 char[] 형태로 만들어준 다음 valueOf() 메서드를 통해서 문자화

 

<자체풀이>

더보기
import java.util.Scanner;

class Main {

    public void solution(String[] inputList) {

        String tempList[] = new String[inputList.length]; //출력할 값 저장
        for ( String e : inputList ){
            String tempStr = "";
            for ( int i = e.length() ; i > 0; i--){
                char tempChr = e.charAt(i-1);
                tempStr += tempChr;
            }
            System.out.println(tempStr);
            ;
        }
    }
   
    public static void main(String[] args){
        Main T = new Main();
        Scanner sc = new Scanner(System.in);
        int inputCount = sc.nextInt();
        String inputList[] = new String[inputCount];
        sc.nextLine();
        for(int i = 0; i < inputCount; i++){
            inputList[i] = sc.nextLine();
        }
        T.solution(inputList);
        sc.close();  
    }

}

<정답코드>

더보기
import java.util.ArrayList;
import java.util.Scanner;

class Main {

    public ArrayList<String> solution(int n, String[] str) {
        ArrayList<String> answer = new ArrayList<>();

        // 방법 2
       
        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); // valueOf static method, 안의 값을 String화해줌
            answer.add(tmp);
        }

        // 방법1

        // for(String x : str){
        //     String tmp = new StringBuilder(x).reverse().toString(); // good,
        //     //String 은 만들고, 수정을 거칠때 마다 새로운 객체가 생성이 된다.
        //     //StringBuilder는 객체를 만들면, 처음에 만든 객체가지고 계속 작업을 한다.
        //     answer.add(tmp);            
        // }

        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);
        }

        sc.close();  
    }

}