String(스트링) 04. 단어 뒤집기
* 사용 언어 : JAVA
* Inflearn의 자바(Java)알고리즘 문제풀이 : 코딩테스트 대비 강의내용 정리
1. 문제
N개의 단어가 주어지면 각 단어를 뒤집어서 출력하기.
첫 줄에 자연수가 주어지며 입력한 자연수 만큼 단어가 주어짐. 단어는 알파벳으로만 구성됨
// 입력
3
study
student
lector
// 출력
yduts
tneduts
rotcel
2. 풀이
(1)
N개의 단어는 String[] 배열로 주어진다.
주어진 단어를 StringBulider 객체로 문자열 객체를 만든다.
reverse() 메서드를 사용하여 단어를 뒤집어주고 toString으로 String type으로 변환하여 변수에 담아준다.
변수를 ArrayList에 담아 반환한다.
(2)
특정 조건에서만 단어를 뒤집어주기 위해 하나하나 뒤집어주도록 구현한다.
for문을 사용하여 주어진 단어를 toCharArray() 메서드를 사용하여 하나하나 문자로 쪼개 char[] 배열에 담아 준다.
배열의 첫번째와 마지막을 담는 변수 first, last를 만들어 서로 바꾸도록 구현한다.
while문을 사용하여 first가 last가 작을 경우동안 반복하면 단어의 길이가 홀수, 짝수 모두 만족한다.
문자를 값교환 해주고 first는 1 증가, last는 1 감소하여 반복하도록 한다.
뒤집어진 단어를 담은 char[] 배열을 String,valueOf() static 메서드를 활용하여 String type으로 변환하여 단어를 담고 ArrayList에 담아 반환한다.
3. 코드
(1)
public class Main {
public ArrayList<String> solution(int num, String[] strings) {
ArrayList<String> answer = new ArrayList<>();
for (String str : strings) {
String temStr = new StringBuilder(str).reverse().toString();
answer.add(temStr);
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
String[] strings = new String[num];
for (int i = 0; i < num; i++) {
strings[i] = scanner.next();
}
for (String str : T.solution(num, strings)) {
System.out.println(str);
}
}
}
(2)
public class Main {
public ArrayList<String> solution(int num, String[] strings) {
ArrayList<String> answer = new ArrayList<>();
for (String str : strings) {
char[] chars = str.toCharArray();
int first = 0;
int last = chars.length - 1;
while (first < last) {
char tempChar = chars[first];
chars[first] = chars[last];
chars[last] = tempChar;
first++;
last--;
}
String temStr = String.valueOf(chars);
answer.add(temStr);
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
String[] strings = new String[num];
for (int i = 0; i < num; i++) {
strings[i] = scanner.next();
}
for (String str : T.solution(num, strings)) {
System.out.println(str);
}
}
}
4. Keword
- StringBuilder
- reverse()
'Algorithm' 카테고리의 다른 글
[자바 알고리즘 문제풀이] String 06. 중복 문자 제거 (0) | 2022.03.07 |
---|---|
[자바 알고리즘 문제풀이] String 05. 특정 문자 뒤집기 (0) | 2022.03.07 |
[자바 알고리즘 문제풀이] String 03. 문장 속 단어 (0) | 2022.03.06 |
[자바 알고리즘 문제풀이] String 02. 대소문자 변환 (0) | 2022.02.17 |
[자바 알고리즘 문제풀이] String 01. 문자 찾기 (0) | 2022.02.17 |