반응형
설명
N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하시오.
입력
첫 줄에 자연수 N(3 <= N <= 20 )이 주어집니다.
두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 단어는 영어 알파벳으로만 구성되어 있습니다.
출력
N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.
예시 입력
3
apple
banana
cherry
예시 출력
elppa
ananab
yrrehe
내 정답
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public void solution(ArrayList<String> wordList) {
String answer = "";
for(String x : wordList) {
StringBuilder sb = new StringBuilder();
String reverseWord = sb.append(x).reverse().toString();
System.out.println(reverseWord);
}
}
public static void main(String[] args) {
Main C = new Main();
Scanner sc = new Scanner(System.in);
ArrayList<String> wordList = new ArrayList<>();
int num = sc.nextInt();
for(int i = 0; i < num; i++) {
String word = sc.next();
wordList.add(word);
}
C.solution(wordList);
}
}
정답 1 - StringBuilder reverse 사용
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public ArrayList<String> solution(String[] strArray) {
ArrayList<String> answer = new ArrayList<>();
for(String x : strArray) {
String tmp = new StringBuilder(x).reverse().toString();
answer.add(tmp);
}
return answer;
}
public static void main(String[] args) {
Main C = new Main();
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String[] strArray = new String[num];
for(int i = 0; i < num; i++) {
strArray[i] = sc.next();
}
for(String x : C.solution(strArray)) {
System.out.println(x);
}
}
}
정답 2
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public ArrayList<String> solution(String[] strArray) {
ArrayList<String> answer = new ArrayList<>();
for(String x : strArray) {
char[] chArray = x.toCharArray(); //문자 배열화
int leftIndex = 0;
int rightIndex = x.length() - 1;
while(leftIndex < rightIndex) {
char tmp = chArray[leftIndex];
chArray[leftIndex] = chArray[rightIndex];
chArray[rightIndex] = tmp;
leftIndex++;
rightIndex--;
}
String tmp = String.valueOf(chArray);
answer.add(tmp);
}
return answer;
}
public static void main(String[] args) {
Main C = new Main();
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String[] strArray = new String[num];
for(int i = 0; i < num; i++) {
strArray[i] = sc.next();
}
for(String x : C.solution(strArray)) {
System.out.println(x);
}
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[인프런 자바 알고리즘 문제풀이] 6. 중복 문자 제거 (0) | 2022.09.21 |
---|---|
[인프런 자바 알고리즘 문제풀이] 5. 특정 문자 뒤집기(toCharArray()) (2) | 2022.09.21 |
[인프런 자바 알고리즘 문제풀이] 3. 문장 속 단어 (1) | 2022.09.20 |
[인프런 자바 알고리즘 문제풀이] 2. 대소문자 변환 (0) | 2022.09.20 |
[인프런 자바 알고리즘 문제풀이] 1. 문자 찾기 (1) | 2022.09.19 |