첫 번째 풀이 (내 풀이)
public class Main {
public void solution(String[] arr) {
for (String s : arr) {
System.out.println(new StringBuilder(s).reverse());
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Main T = new Main();
int n = sc.nextInt();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.next();
}
T.solution(arr);
}
}
두 번째 풀이 (선상님 풀이)
public class Main2 {
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;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Main2 T = new Main2();
int n = sc.nextInt();
String[] str = new String[n];
for (int i = 0; i < n; i++) {
str[i] = sc.next();
}
for (String s : T.solution(n, str)) {
System.out.println(s);
}
}
}
세 번째 풀이
투포인터 같은 풀이 방법, 이런 풀이 방법을 많이 쓸려고 노력해야 할 듯
public class Main3 {
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) { // 짝수길이일 경우 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;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Main3 T = new Main3();
int n = sc.nextInt();
String[] str = new String[n];
for (int i = 0; i < n; i++) {
str[i] = sc.next();
}
for (String s : T.solution(n, str)) {
System.out.println(s);
}
}
}
'알고리즘 > 인프런_자바코테강의' 카테고리의 다른 글
인프런 6. 중복 문자 제거 (Java) (0) | 2022.03.10 |
---|---|
인프런 5. 특정 문자 뒤집기 (Java) (0) | 2022.03.10 |
인프런 3. 문장 속 단어 (Java) (0) | 2022.03.07 |
인프런 2. 대소문자 변환 (Java) (0) | 2022.03.07 |
인프런 1. 문자찾기 (Java) (0) | 2022.03.07 |