거꾸로 출력하기
설명
알고리즘 초급 문제를 보면 거꾸로 출력하기 문제가 상당히 기본 문제로 출제된다.
문자열의 경우 StringBuilder의 reverse()를 통해 쉽게 문제를 풀이할 수 있지만 항상 문자열만 거꾸로 출력하라는 경우가 없을 수도 있고 배열 자체를 거꾸로 뒤짚어야할 경우도 있다.
그래서 두가지 방법 모두 풀어보려고 한다.
코드
- StringBuilder를 이용한 방법
public class ReverseWord {
//1. StringBuilder reverse를 이용하는 방법
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int input1 = in.nextInt();
for(int i=0; i<input1; i++){
String input2 = in.next();
StringBuilder sb = new StringBuilder(input2);
System.out.println(sb.reverse().toString());
}
}
}
public class ReverseWord {
//1. StringBuilder reverse를 이용하는 방법
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int input1 = in.nextInt();
for(int i=0; i<input1; i++){
String input2 = in.next();
StringBuilder sb = new StringBuilder(input2);
System.out.println(sb.reverse().toString());
}
}
}
StringBuilder의 Reverse로 입력 받은 문자열을 간단하게 뒤집었다.
- 직접 revese 알고리즘 구현
public class ReverseWord {
//2. 직접 reverse를 구현
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int input1 = in.nextInt();
for(int i=0; i<input1; i++){
String str = in.next();
char[] chars = str.toCharArray();
int start = 0;
int end = chars.length-1;
while(start<end){
char temp = chars[start];
chars[start] = chars[end];
chars[end] = temp;
start++;
end--;
}
System.out.println("new String(chars) = " + new String(chars));
}
}
}
swap을 통해 배열의 위치를 바꾸는 방식을 이용하여 배열의 시작과 끝부터 각 앞뒤로 한칸씩 자리 바꾸기를 하며 중간 지점에서 종료되는 알고리즘 입니다.
간단한 알고리즘이지만 기억하자
Reverse는int start = 0; int end = chars.length-1; while(start<end){ char temp = chars[start]; chars[start] = chars[end]; chars[end] = temp; start++; end--; }
Author And Source
이 문제에 관하여(거꾸로 출력하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ililil9482/문자열-거꾸로-출력하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)