728x90
반응형
▷ 문제
N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요.
* 입력
첫 줄에 자연수 N(3<=N<=20)이 주어집니다.
두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 단어는 영어 알파벳으로만 구성되어 있습니다.
* 출력
N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.
▷ 입력 예시
3
good
Time
Big
▷ 출력 예시
doog
emiT
giB
▷ 풀이
1. reverse 직접 구현 - 이중 for문 사용
import java.util.Scanner;
public class Main {
public String[] solution(String[] arr){
String[] answer = new String[arr.length];
for (int i = 0; i < arr.length; i++) {
char[] cArr = arr[i].toCharArray();
String tmp = "";
for (int j = cArr.length-1 ; j >= 0; j--) {
tmp += cArr[j];
}
answer[i] = tmp;
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
arr[i] = kb.next();
}
for (String x : main.solution(arr)) {
System.out.println(x);
}
}
}
2. reverse 직접 구현 - temp 변수를 이용한 순서 바꾸기
import java.util.*;
public class Main {
public List<String> solution(int n, String[] arr){
List<String> answer = new ArrayList<String>();
for(String x : arr){
char[] cArr = x.toCharArray();
int lt = 0, rt = x.length() - 1;
while (lt < rt) {
char tmp = cArr[lt];
cArr[lt] = cArr[rt];
cArr[rt] = tmp;
lt++;
rt--;
}
String tmp = String.valueOf(cArr);
answer.add(tmp);
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
arr[i] = kb.next();
}
for (String x : main.solution(n, arr)) {
System.out.println(x);
}
}
}
3. StringBuilder의 reverse메소드 사용
import java.util.*;
public class Main {
public List<String> solution(int n, String[] arr){
List<String> answer = new ArrayList<String>();
for (String x : arr) {
String tmp = new StringBuilder(x).reverse().toString();
answer.add(tmp);
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
arr[i] = kb.next();
}
for (String x : main.solution(n, arr)) {
System.out.println(x);
}
}
}
▷ 핵심 키워드
1. StringBuilder의 reverse 메소드를 사용하여 문자열을 뒤집을 수 있습니다.
2. temp 변수를 이용하여 reverse를 구현할 수 있습니다.
반응형
'Algorithm > String' 카테고리의 다른 글
[알고리즘]중복문자 제거 - 입력 받은 문자열에서 중복된 문자 제거하기 (0) | 2021.10.09 |
---|---|
[알고리즘]문자찾기 - 입력 받은 문자열에서 특정 문자가 몇 개 존재하는지 알아내기 (0) | 2021.10.09 |
[알고리즘]문장 속 단어 - 입력 받은 문장에서 가장 긴 단어 출력하기 (0) | 2021.10.09 |
[알고리즘]대소문자 변환 - 입력 받은 문자열의 대소문자 변환하기 (0) | 2021.10.09 |
[알고리즘]문자찾기 - 입력 받은 문자열에서 특정 문자가 몇 개 존재하는지 알아내기 (0) | 2021.10.09 |