04. 단어 뒤집기

2025. 4. 25. 10:51·알고리즘 문제풀이
반응형

문제

설명
N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요.
입력
첫 줄에 자연수 N(3 <=N <=20)이 주어집니다.
두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 단어는 영어 알파벳으로만 구성되어 있습니다.
출력
N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.

 

예시 입력 1 

3
good
Time
Big


예시 출력 1

doog
emiT
giB

 


풀이

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

public class JAVA1 {

    public static ArrayList<String> solution(String[] s){

        ArrayList<String> answer = new ArrayList<>();

        for(String i:s){
            String temp = new StringBuilder(i).reverse().toString();
            answer.add(temp);
        }
        return answer;
    }

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


        int n = sc.nextInt();
        sc.nextLine();
        String[] s = new String[n];

        for(int i=0;i<n;i++){
            s[i] = sc.nextLine();
        }

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

    }
}

 

StringBuilder를 활용한 풀이이다.

풀다 보니 StringBuilder에 대해서 많이 까먹은 거 같아서 이것도 따로 포스팅해야겠다

 


두 번째 풀이

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

public class JAVA1 {

    public static ArrayList<String> solution(String[] s){

        ArrayList<String> answer = new ArrayList<>();
        
        for(String i:s){
            char[] c = i.toCharArray();
            int lt = 0;
            int rt = c.length-1;

            while(lt<rt){
                char temp = c[lt];
                c[lt] = c[rt];
                c[rt] = temp;
                lt++;
                rt--;

            }
            answer.add(new String(c));
        }
        return answer;
    }

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


        int n = sc.nextInt();
        sc.nextLine();
        String[] s = new String[n];

        for(int i=0;i<n;i++){
            s[i] = sc.nextLine();
        }

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

    }
}

 

StringBuilder를 사용하지 않고 toCharArray로 String을 char 배열로 받아 각각의 index를 활용한 풀이이다.

첫 번째 문자에 lt, 마지막 문자에 rt를 넣고 각각 +1, -1을 하며 교환하는 방식이다.

lt가 rt보다 커진다면 배열의 중간을 넘어갔으므로 while문을 종료한다.

reverse() 함수를 직접 구현했다고 보면 되겠다!

반응형

'알고리즘 문제풀이' 카테고리의 다른 글

[SWEA]1926. 간단한 369게임  (0) 2025.04.28
[SWEA]21425. +=  (0) 2025.04.28
03. 문장 속 단어  (0) 2025.04.24
02. 대소문자 변환  (0) 2025.04.24
01. 문자 찾기  (0) 2025.04.24
'알고리즘 문제풀이' 카테고리의 다른 글
  • [SWEA]1926. 간단한 369게임
  • [SWEA]21425. +=
  • 03. 문장 속 단어
  • 02. 대소문자 변환
fkqlaus
fkqlaus
안녕하세요 Java, Spring boot 공부하는 주니어 개발자입니다
  • fkqlaus
    개발자가 끄적끄적 블로그
    fkqlaus
  • 전체
    오늘
    어제
    • 분류 전체보기 (24)
      • Spring boot (3)
      • 프레임워크 (3)
      • Java (6)
      • DevOps (3)
      • DB (1)
      • CS (1)
      • GIS (1)
      • 알고리즘 문제풀이 (9)
      • 알고리즘 (0)
  • 인기 글

  • 태그

    알고리즘
    데이터베이스
    컴퓨터
    collection
    cs
    spring
    list
    docker
    서버
    개발자
    완전탐색
    db
    DevOps
    개발
    D2
    SWEA
    코딩테스트
    iterator
    Java
    프로그래머스
  • hELLO· Designed By정상우.v4.10.3
fkqlaus
04. 단어 뒤집기
상단으로

티스토리툴바