본문 바로가기
알고리즘(Java)/String

[알고리즘]String(문자열) 4.단어 뒤집기 - N개의 단어를 입력받아 뒤집어 출력하기

by snowballchoi 2021. 7. 17.
4. 단어 뒤집기
N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램
입력) 첫 줄에 자연수 N(3<=N<=20)이 주어집니다. 두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 
출력) N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.

 

 

1. StringBuilder, reverse() 이용

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

public class Main {
	
	public static ArrayList<String> solution(int n, String[] words) {	
		ArrayList<String> answer = new ArrayList<>();
		for (String x : words) {
			String temp = new StringBuilder(x).reverse().toString(); 
			answer.add(temp);
		}
		return answer;
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();		
		String[] words = new String[n];
		
		for (int i=0; i<n; i++) {
			words[i] = scanner.next();
		}
		for (String x : solution(n, words)) {
			System.out.println(x);
		}
	}

}

 

2. index 이용

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

public class Main {
	
	public static ArrayList<String> solution(int n, String[] words) {	
		ArrayList<String> answer = new ArrayList<>();		
		for (String x : words) {
			char[] c = x.toCharArray();
			int lt = 0, rt = x.length()-1; 
			// lt : 가장 왼쪽 문자의 index, rt : 가장 오른쪽 문자의 index
			while(lt<rt) {
				char temp = c[lt];
				c[lt] = c[rt];
				c[rt] = temp;
				lt++;
				rt--;
			}
			String temp = String.valueOf(c); // char -> String
			answer.add(temp);
		}
		return answer;
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();		
		String[] words = new String[n];
		
		for (int i=0; i<n; i++) {
			words[i] = scanner.next();
		}
		for (String x : solution(n, words)) {
			System.out.println(x);
		}
	}

}​

 

3.

import java.util.Scanner;
import java.util.Vector;

public class Main {
	
	public static Vector<String> solution(int n, String[] words) {	
		Vector<String> answer = new Vector<String>();
		
		for (String x : words) {
			String reversed = "";
			for (int i=0; i<x.length(); i++) {
				char ch = x.charAt(i);
				reversed = ch + reversed;
			}
			answer.add(reversed);
		}
		return answer;
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		
		String[] words = new String[n]; // 크기가 n인 배열
		
		for (int i=0; i<n; i++) {
			String word = scanner.next();
			words[i] = word;			
		}		
		for (String x : solution(n, words)) {
			System.out.println(x);
		}		
	}

}

결과

입력
3
happY
Good
giG

출력
Yppah
dooG
Gig

댓글