단어 뒤집기(StringBuilder)

2023. 3. 6. 20:15·알고리즘

문제

첫줄에 자연수 N이 주어지고,

두번째 줄 부터 한줄에 하나의 단어가 N개씩 주어질때,

입력된 순서대로 단어의 알파벳을 뒤집어서 출력하세요

예시입력

3
good
Time
Big

예시 출력

doog
emiT
giB

문제 풀이

StringBuilder를 이용한 방법

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

public class Main {
    public static void main(String[] args){
        Main main = new Main();
        Scanner in=new Scanner(System.in);
        int n = in.nextInt();        //첫번째 줄의 숫자를 변수에 저장
        String[] str = new String[n];//해당 숫자 만큼의 갯수를 가지는 String배열 생성
        for(int i=0; i<n; i++) {
            str[i] = in.next();      //해당 배열에 입력받은 단어들을 저장
        }
        for (String x : main.solution(n, str)) {
            System.out.println(x);   //solution에 배열을 넘기고 받은 배열을 출력
        }
        return ;
    }

    public ArrayList<String> solution(int n, String[] str) {
        ArrayList<String> answer = new ArrayList<>();
        for (String x : str) {
            String tmp = new StringBuilder(x).reverse().toString();
            answer.add(tmp);
        }

        return answer;
    }
}

Scanner.nextInt() : 입력받은 숫자를 int형으로 리턴

StringBuilder(String str).reverse() : str을 StringBuilder클래스로 만들고, 거꾸로 변환시켜 줌

StringBuilder.toString() : StringBuilder클래스를 String형으로 변환시켜 준다.

직접 바꾸는 방법 (StringBuilder를 사용하지 못할 때)

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

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

    public ArrayList<String> solution(int n, String[] str) {
        ArrayList<String> answer = new ArrayList<>();
        for (String x : str) {
            char[] s=x.toCharArray();
            int lt=0, rt=x.length()-1;
            while (lt < rt) {
                char tmp=s[lt];
                s[lt]=s[rt];
                s[rt]=tmp;
                lt++;
                rt--;
            }
            String tmp = String.valueOf(s);
            answer.add(tmp);
        }
        return answer;
    }
}

String.toCharArray() : String을 char형 배열로 반환

String.length() : 스트링의 길이를 구해준다. 1부터 시작한다.

String.valueOf(char[] c) : char형 배열을 String으로 반환한다.

 

2023.03.06 - [Language/Java] - StringBuilder란? StringBuilder 사용 방법

 

 

 

 

참고

이 글은 인프런 강의 김태원님의

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비를 바탕으로 쓴 글입니다.

https://www.inflearn.com/course/자바-알고리즘-문제풀이-코테대비

 

반응형
저작자표시 (새창열림)
'알고리즘' 카테고리의 다른 글
  • 자료구조란?
  • 특정 문자 뒤집기
  • 알고리즘 - 문장 속 단어
  • 알고리즘 - 대소문자 변환
LightSource
LightSource
어제보단 발전한 오늘의 나를 위한 블로그
    반응형
  • LightSource
    LightSourceCoder
    LightSource
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • Git (4)
      • Language (6)
        • Java (6)
      • Back-End (63)
        • Spring Boot (4)
        • MyBatis (1)
        • Oracle (1)
        • PL SQL (3)
        • JPA (26)
        • Spring Data JPA (5)
        • Spring MVC (8)
        • Spring (12)
        • Spring Security (2)
        • Redis (1)
      • Front-End (38)
        • 아이오닉 (2)
        • JSP (7)
        • JavaScript (4)
        • React (16)
        • TypeScript (3)
        • Angular (6)
      • AWS (1)
      • CI & CD (1)
      • 개발지식 (13)
        • 네트워크 (9)
        • CS 지식 (4)
      • 데이터모델링 (2)
      • Tool (1)
      • 프로젝트 (5)
      • 독후감 (2)
      • 잡생각 (0)
      • 면접 준비 (1)
      • 알고리즘 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    배열요소삭제
    배요소열추가
    react
    배열요소수정
    리액트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
LightSource
단어 뒤집기(StringBuilder)
상단으로

티스토리툴바