단어 뒤집기
문제
설명
N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요.
입력
첫 줄에 자연수 N(3<=N<=20)이 주어집니다. 두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 단어는 영어 알파벳으로만 구성되어 있습니다.
출력
N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.
예시 입력 1
3
good
Time
Big
해결방법
- char 배열로 변환 후, 한 글자 씩 붙인다.
- StringBuilder를 사용하여 해결한다.
StringBuilder sb = new StringBuilder(); // 단어가 거꾸로 append 됨. sb.append(x).reverse();
코드
StringBuilder 를 활용하는 방법
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.Main T = new Main.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); } } }
배열로 변환 후 해결하는 방법
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, 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.Main T = new Main.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); } } }