문제풀이 - String(문자열) :: 4. 단어 뒤집기

문제

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

입력

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

출력

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

예시 입력 1

3
good
Time
Big

예시 출력 1

doog
emiT
giB

🎇 Solution.java

new StringBuilder(x).reverse()를 이용한 풀이

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

x.toCharArray()와 String.valueOf(s)를 이용한 풀이

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

💭 정리

new StringBuilder(str).reverse().toString() -> 문자열을 뒤집고 String으로 변환
str.toCharArray() -> 문자열을 Char 타입의 배열로 변환
String.valueOf(s) -> 값을 String 문자열로 변환
++ valueOf는 static으로 선언된 클래스 메소드기 때문에 String.valueOf(s)로 써야함

좋은 웹페이지 즐겨찾기