반응형
설명
N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요.
입력
첫 줄에 자연수 N(3<=N<=20)이 주어집니다.
두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 단어는 영어 알파벳으로만 구성되어 있습니다.
출력
N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.
예시 입력 1
3
good
Time
Big
예시 출력 1
doog
emiT
giB
내 풀이
단어 하나하나 charArray()로 쪼개어 뒤쪽 인덱스 부터 순회하는 방법
public class ReverseWord {
public void solution(String[] wordArray){
int wordLength=0;
for (String word : wordArray) { // 단어 하나씩 순회
StringBuilder reverseWord = new StringBuilder();
wordLength = word.length();
for (int j = wordLength; j > 0; j--) {
char[] chars = word.toCharArray();
reverseWord.append(chars[j - 1]);
}
System.out.println(reverseWord);
}
}
public static void main(String[] args) {
ReverseWord reverseWord = new ReverseWord();
Scanner scan = new Scanner(System.in);
System.out.println("몇 개의 단어를 입력하실 건가요?");
int n = scan.nextInt();
String[] wordArray = new String[n];
for(int i=0; i<n;i++){
System.out.println((i+1)+"번째 단어를 입력해 주세요");
wordArray[i]=scan.next();
}
reverseWord.solution(wordArray);
}
}
다른 풀이
StringBuilder 의 reverse() 를 이용하는 방법
public class ReverseWord {
public ArrayList<String> solution2(int n, String[] str){
ArrayList<String> answer = new ArrayList<>();
for(String x : str){// 문자열을 다루는 클래스 중 하나인 String Builder
String tmp = new StringBuilder(x).reverse().toString();// Builder 에서 제공하는 Reverse 메서드를 이용
answer.add(tmp);
}
return answer;
}
public static void main(String[] args) {
ReverseWord reverseWord = new ReverseWord();
Scanner scan = new Scanner(System.in);
System.out.println("몇 개의 단어를 입력하실 건가요?");
int n = scan.nextInt();
String[] wordArray = new String[n];
for(int i=0; i<n;i++){
System.out.println((i+1)+"번째 단어를 입력해 주세요");
wordArray[i]=scan.next();
}
for(String x: reverseWord.solution2(n,wordArray)){
System.out.println(x);
}
}
}
반응형
'자료구조 | 알고리즘 > 문제' 카테고리의 다른 글
[JAVA] 문자열 - 문장 속 단어 (1) | 2022.09.24 |
---|---|
[JAVA] 문자열 - 대소문자 변환 (0) | 2022.09.23 |
[JAVA] 문자열 - 문자 찾기 (1) | 2022.09.22 |
[JAVA]프로그래머스 Lv1.약수의 개수와 덧셈 (0) | 2021.05.21 |
[JAVA]프로그래머스 Lv1. 음양 더하기 (0) | 2021.05.21 |
댓글