김찬진의 개발 블로그

23/01/19 [Inf_0104 단어 뒤집기] 본문

1일1알고/Java Algorithm

23/01/19 [Inf_0104 단어 뒤집기]

kim chan jin 2023. 1. 19. 15:36

설명

N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요.

 

입력

첫 줄에 자연수 N(3<=N<=20)이 주어집니다.

두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 단어는 영어 알파벳으로만 구성되어 있습니다.

 

출력

N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.

 

예시 입력 1 

3
good
Time
Big

 

예시 출력 1

doog
emiT
giB

 

코드: ArrayList 사용

기억할 것

ArrayList add()

StringBuilder reverse(), toString()

package algorithm;

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

public class Main {
    public ArrayList<String> solution(String[] str){
        ArrayList<String> al = new ArrayList<>();
        for(String s : str){
            String tmp = new StringBuilder(s).reverse().toString();
            al.add(tmp);
        }
        return al;
    }

    public static void main(String[] args) {
        Main m = new Main();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] str = new String[n];

        for(int i=0; i<n; i++){
            str[i] = sc.next();
        }
        for(String s : m.solution(str)){
            System.out.println(s);
        }
    }
}

 

코드: 직접 뒤집기

기억할 것

String toCharArray(), String.valueOf(기본형)

ArrayList add()

지네릭

package algorithm;

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

public class Main {
    public ArrayList<String> solution(String[] str){
        ArrayList<String> al = new ArrayList<>();
        for(String s : str){
            char[] ca = s.toCharArray();
            int lt = 0;
            int rt = ca.length-1;
            while(lt < rt){
                char tmp = ca[lt];
                ca[lt] = ca[rt];
                ca[rt] = tmp;
                lt++; rt--;
            }
            String tmp = String.valueOf(ca); // 기본형 -> 문자열
            al.add(tmp);
        }
        return al;
    }

    public static void main(String[] args) {
        Main m = new Main();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] str = new String[n];

        for(int i=0; i<n; i++){
            str[i] = sc.next();
        }
        for(String s : m.solution(str)){
            System.out.println(s);
        }
    }
}
Comments