[Java알고리즘] 4. 단어 뒤집기(StringBuilder이용법 또는 직접뒤집기)

진주·2022년 3월 9일
0

Java알고리즘

목록 보기
1/10

🌼 Problem


🍔 Solution1 - StringBuffer 클래스 reverse() 사용

import java.util.Scanner;
  
public class Main {
  
      public static void Solution(String[] strArray){

        // StringBuffer 객체 생성
        StringBuffer sb = new StringBuffer();

        // StringBuffer객체에 String을 추가 : append() 함수 사용
        for(String s : strArray){
            System.out.println(sb.append(s).reverse());
            // StringBuffer 객체에 들어가있는 String을 제거해줘야 한다.
            sb.delete(0,s.length());
        }

    }

  public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        int num = in.nextInt();

        // 사용자에게 입력받을 stinrg 개수만큼 String배열 초기화
        String[] strArray = new String[num];

        // strArray에 차례대로 사용자가 입력한 문자열 초기화하기
        for(int i=0; i<strArray.length; i++){
            strArray[i] = in.next();
        }

        Solution(strArray);
  }
}

[결과]


✨ issue : StringBuffer 클래스의 delete()를 사용하지 않았을 때

"apple"과 "banana"가 합쳐진 결과가 나온다.


🍔 Solution2 - StringBuffer + ArrayList사용

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

public class Main {

    public static ArrayList<String> Solution(String[] str){
        ArrayList<String> answer = new ArrayList<>();

        for(String x : str){
 				
            /* tmp에 StringBuilder() 클래스의 reverse() 메소드를 사용하여 
            뒤집은 문자열을 저장한 뒤, ArrayList에 add()한다. */ 
            String tmp = new StringBuilder(x).reverse().toString();
            // ArrayList타입의 answer에 뒤집어진 글자가 들어간다.
            answer.add(tmp);
        }

        return answer;
    }


    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        int num = in.nextInt();

        String[] input = new String[num];
        
        for(int i = 0 ; i < num; i++){
            input[i] = in.next();   //  nextLine()이 아니라 next를 써줘야 했다!!!
        }

        for(String x : Solution(input) ){
            System.out.println(x);
        }
    }
}

[결과]

profile
진주의 코딩일기

0개의 댓글

관련 채용 정보