본문 바로가기

CodingTest Practice

[인프런] 단어 뒤집기

단어 뒤집기

N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램

 

■ 문제 풀이

1) 입력설명
- 첫 줄에 자연수 N(3<=N<=20)이 주어진다.
- 두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어진다.
- 단어는 영어 알파벳으로만 구성


2) 출력설명
- N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력

3) 테스트
3
good
Time
Big
doog
emiT
giB

4) 문제풀이

 

import java.util.Scanner;

public class TurnOver {

    private String solution(String input){
        String answer = "";
        char[] chars = input.toCharArray();
        int len = chars.length;
        for (int i = len - 1; i >= 0; i--) {
            answer += chars[i];
        }

        return answer;
    }

    public static void main(String[] args) {
        TurnOver turnOver = new TurnOver();

        Scanner scanner = new Scanner(System.in);
        int cnt = scanner.nextInt();
        String[] str = new String[cnt];

        for (int i = 0; i < cnt; i++) {
            str[i] = turnOver.solution(scanner.next());
        }

        for (String s : str) {
            System.out.println(s);
        }
        return;
    }
}

 

import java.sql.Array;
import java.util.ArrayList;
import java.util.Scanner;

public class TurnOverV2 {

    private ArrayList<String> solution(String[] strings){
        ArrayList<String> list = new ArrayList<>();

        for (String s : strings) {
            String tmp = "";
            char[] array = s.toCharArray();
            int lt = 0;
            int rt = s.length()-1;
            while (lt < rt) {
                char c = array[lt];
                array[lt] = array[rt];
                array[rt] = c;

                lt++;
                rt--;
            }
            list.add(String.valueOf(array));
        }

        return list;
    }

    private ArrayList<String> solution2(String[] array){
        ArrayList<String> list = new ArrayList<>();
        for (String s : array) {
            StringBuilder stringBuilder = new StringBuilder(s);
            String string = stringBuilder.reverse().toString();
            list.add(string);
        }

        return list;
    }

    public static void main(String[] args) {
        TurnOverV2 turnOverV2 = new TurnOverV2();
        Scanner scanner = new Scanner(System.in);

        int cnt = scanner.nextInt();
        String[] strings = new String[cnt];
        for (int i = 0; i < cnt; i++) {
            strings[i] = scanner.next();
        }

        for (String s : turnOverV2.solution(strings)) {
            System.out.println(s);
        }

        for (String s : turnOverV2.solution2(strings)) {
            System.out.println(s);
        }
    }
}

 

'CodingTest Practice' 카테고리의 다른 글

[인프런] 중복문자제거  (0) 2022.04.02
[인프런] 특정 문자 뒤집기  (0) 2022.03.31
[인프런] 문장 속 단어  (0) 2022.03.29
[인프런] 대소문자 변환  (0) 2022.03.29
[인프런] 문자 찾기 - 문자열  (0) 2022.03.28