728x90
단어 뒤집기
설명
N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요.
입력
첫 줄에 자연수 N(3<=N<=20)이 주어집니다.
두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 단어는 영어 알파벳으로만 구성되어 있습니다.
출력
N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.
예시 입력
3
good
Time
Big
예시 출력
doog
emiT
giB
풀이
1. StringBuilder 이용하기
- StringBuilder로 문자열을 생성할 수 있다.
- StringBuilder의 reverse() 로 문자열을 뒤집는다.
2. 직접 뒤집기
- 입력받은 문자열 배열을 for-each문을 이용해 돈다.
- 하나의 문자열을 문자 배열로 만든다. String의 toCharArray() 메소드를 이용한다.
- 왼쪽 끝의 위치를 가리키는 lt, 오른쪽 끝의 위치를 기리키는 rt 변수를 정의한다.
- 왼쪽 위치가 오른쪽 위치보다 커질 때 까지 아래 로직을 반복한다.
- tmp 변수에 왼쪽 끝의 문자를 저장한다.
- 왼쪽 끝의 문자에 오른쪽 끝의 문자를 대입한다.
- 오른쪽 끝의 문자에 tmp 변수를 대입한다.
- 왼쪽 끝의 인덱스를 증가시킨다.
- 오른쪽 끝의 인덱스를 감소시킨다.
- 문자 배열을 문자열로 만든다. String 클래스의 valueOf() 메소드를 이용한다.
- 해당 문자열을 리스트에 추가한다.
코드
1. StringBuilder 이용하기
package solve;
import java.util.ArrayList;
import java.util.Scanner;
public class Main_1_4 {
public ArrayList<String> solution(int n, String[] str) {
ArrayList<String> answer = new ArrayList<>();
for(String s : str) {
String tmp = new StringBuilder(s).reverse().toString();
answer.add(tmp);
}
return answer;
}
public static void main(String[] args){
Main_1_4 T = new Main_1_4();
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 : T.solution(n, str)) {
System.out.println(x);
}
}
}
2. 직접 뒤집기
package solve;
import java.util.ArrayList;
import java.util.Scanner;
public class Main_1_4 {
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;
// lt는 왼쪽 끝을, rt는 오른쪽 끝을 가르키고, 서로 교환, 하나씩 증가, 감소
// lt < rt while문
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;
}
public static void main(String[] args){
Main_1_4 T = new Main_1_4();
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 : T.solution(n, str)) {
System.out.println(x);
}
}
}
728x90
'Coding Test Inflearn' 카테고리의 다른 글
[String] 중복 문자 제거 (0) | 2024.01.27 |
---|---|
[String] 특정 문자 뒤집기 (0) | 2024.01.27 |
[String] 문장 속 단어 (2) | 2024.01.26 |
[String] 대소문자 변환 (0) | 2024.01.24 |
[String] 문자 찾기 (4) | 2024.01.22 |