String

=ACM ICPC 2006 인터넷 예선 연습문제 A - String=

당신에게는 영어 알파벳(대문자)의 문자열이 주어진다. 당신이 할일은 뒤집힌 입력 문자열을 생산하는 것이다.

You are given a string of the (capital) English alphabet. Your task is to produce the reversed string of the input.

I. Input
당신의 프로그램은 표준 입력으로부터 읽는 것이다. 입력은 T(1 ≤ T ≤ 20) 개의 테스트 조건으로 구성된다. 테스트 조건들의 개수 T는 입력의 첫번째 줄에 주어진다. 각각의 테스트 조건들은 매 줄마다 {A, B, C, …, Z}의 문자열로 구성된다. 입력 문자열들의 길이들은 0보다 크지만 50이 되지는 않는다.

Your program is to read from standard input. The input consists of T (1 ≤ T ≤ 20) test cases. The number T of test cases is given in the first line of the input. Each test case contains a string of {A, B, C, …, Z} in each following line. The lengths of input strings are more than 0 but not longer than 50.

II. Output
당신의 프로그램은 표준 출력에 출력하는 것이다. 뒤집혀진 입력 문자열인 각각의 테스트 조건마다 한줄에 하나씩 올바르게 출력하라.

Your program is to write to standard output. Print exactly one single line for each test case with the reversed string of the input string.

III. Sample Input
4 A ICPC LIVE ABCDEFGHIJKLMNOP

IV. Output for the Sample Input
A CPCI EVIL PONMLKJIHGFEDCBA

Java
code format="cmake" import java.util.Scanner;

public class StringReverser { public static void main(String[] args) { Scanner scan = new Scanner(System.in);

int T = scan.nextInt;   // 테스트 케이스의 개수

for(int i = 0; i < T; i++) { String s = scan.next;   // 입력 문자열

System.out.println(reverse(s)); }   }

/**    * 문자열을 뒤집는다. * @param str 입력 문자열 * @return 뒤집힌 문자열 */   public static String reverse(String str) { char[] ret = new char[str.length];

for(int i = 0; i < str.length; i++) { ret[str.length - i - 1] = str.charAt(i); }

return new String(ret); } } code code public static String reverse(String str) { // 스택에 한글자씩 넣는다. Deque stack = new ArrayDeque; for(int i = 0; i < str.length; i++) { stack.push(str.charAt(i)); }

// 스택에서 한글자씩 빼서 버퍼에 넣는다. StringBuffer sb = new StringBuffer; while(!stack.isEmpty) { sb.append(stack.pop); }

return sb.toString; }

public static String reverse(String str) { StringBuilder sb = new StringBuilder(str); sb.reverse;

return sb.toString; } } code

Scala
code format="scala" object Algorithm extends App {

val T = readInt

for (i <- 0 until T) {

val line = readLine

println(line.reverse) } } code

Comment
기본적인 문자열 뒤집는 문제이다. 배열을 사용한 풀이, 스택을 사용한 풀이, 라이브러리를 이용해서 구현해보았다.