Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
자바 알고리즘 문제 풀이 String Q04_단어 뒤집기 본문
728x90
설명
N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요.
입력
첫 줄에 자연수 N(3<=N<=20)이 주어집니다.
두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 단어는 영어 알파벳으로만 구성되어 있습니다.
출력
N개의 단어를 입력된 순서대로 한 줄에 하나씩 뒤집어서 출력합니다.
예시 입력1
예시 출력3
good
Time
Bigdoog
emiT
giB
코드
내가 입력한 코드
package String; import java.util.Scanner; public class Q04 { public void solution(int N) { StringBuilder[] answer = new StringBuilder[N]; StringBuilder[] str = new StringBuilder[N]; Scanner kb = new Scanner(System.in); for (int i = 0; i < N; i++) { str[i] = new StringBuilder(); String tmp = kb.next(); str[i].append(tmp); } for (int i = 0; i < N; i++) { answer[i] = new StringBuilder(); answer[i] = str[i].reverse(); System.out.println(answer[i]); } } public static void main(String[] args) { Q04 T = new Q04(); Scanner kb = new Scanner(System.in); int N = kb.nextInt(); T.solution(N); } }
해설 코드import java.util.*; class Main { 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){ Main T = new Main(); Scanner kb = new Scanner(System.in); int n=kb.nextInt(); String[] str=new String[n]; for(int i=0; i<n; i++){ str[i]=kb.next(); } for(String x : T.solution(n, str)){ System.out.println(x); } } }
import java.util.*; class Main { 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){ 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 T = new Main(); Scanner kb = new Scanner(System.in); int n=kb.nextInt(); String[] str=new String[n]; for(int i=0; i<n; i++){ str[i]=kb.next(); } for(String x : T.solution(n, str)){ System.out.println(x); } } }
풀이 및 정리
정답은 맞춘 듯 하지만 컴파일 오류로 채점 불가.. 효율적이지 못한 방법인듯하다.
- 첫 번째 풀이 방법은 거의 비슷하게 작성했었지만, 출력이 안돼서 현재 작성한 코드로 바꿨었다.
- reverse( ) 메소드는 문자열을 거꾸로 반환시켜준다.
=> toCharArray( )는 문자열을 문자 배열로 반환시켜준다.
toString( )과 String.valueOf( )의 차이점
=> null 값의 출력 유 무, toString은 null을 출력할 수 없다.
728x90
'ALGORITHM > inflearn_javaAlgorithm' 카테고리의 다른 글
자바 알고리즘 문제 풀이 String Q06_중복문자제거 (0) | 2022.01.26 |
---|---|
자바 알고리즘 문제 풀이 String Q05_특정 문자 뒤집기 (0) | 2022.01.25 |
자바 알고리즘 문제 풀이 String Q03_문장 속 단어 (0) | 2022.01.23 |
자바 알고리즘 문제 풀이 String Q02_대소문자 변환 (0) | 2022.01.23 |
자바 알고리즘 문제 풀이 String Q01_문자 찾기 (0) | 2022.01.22 |
Comments