package practice.test.coding;
import java.util.Scanner;
public class WordFlipping {
public static String solution(String str) {
char[] charArr = str.toCharArray();
int start = 0;
int end = charArr.length - 1;
while(start < end) {
char temp = charArr[start];
charArr[start] = charArr[end];
charArr[end] = temp;
start++;
end--;
}
return new String(charArr);
}
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int i = kb.nextInt();
String[] str = new String[i];
for(int x=0; x<i; x++) {
str[x] = kb.next();
}
for(String x : str) {
System.out.println(solution(x));
}
}
}
package practice.test.coding;
import java.util.ArrayList;
import java.util.Scanner;
public class WordFlipping {
public static ArrayList<String> solution(int i, 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) {
Scanner kb = new Scanner(System.in);
int i = kb.nextInt();
String[] str = new String[i];
for(int x=0; x<i; x++) {
str[x] = kb.next();
}
for(String x : solution(i, str)) {
System.out.println(x);
}
}
}
숫자를 입력할 경우 입력한 숫자만큼 문자를 입력할 수 있고, 그 문자의 순서는 반전된다.
toCharArray()
메소드로 문자열을 char형 문자 배열로 만드는 것을 계속해서 연습하는 중이다. 문자의 대소문자를 변환하거나 순서를 바꾸는 등 다양하게 활용할 수 있을 것 같다.
그런데 String 연산이 많아질 경우에는 StringBulider()
를 사용하여 보다 효율적인 코딩이 가능하다. 위 풀이에서는 reverse() 메소드를 사용해 보았다. 이 방법이 간단해 보이기는 하지만, 상황에 따라 첫 번째 방법과 두 번째 방법을 적재적소에 쓸 수 있는 능력을 기르자.