728x90
반응형
#7
주어진 string 에 모든 단어를 거꾸로 하시오.
예제)
Input: “abc 123 apple”
Output: “cba 321 elppa”
Input의 문자열을 문자단위로 나눈 후, 각 단어를 거꾸로 만들어서 새로운 문자열에 추가하면 쉽게 풀 수 있다.
코딩테스트시 제공되는 편리한 API(함수) 사용이 제한이 될 수 있다하여, split와 문자열을 거꾸로 출력하는 reverse를 별도로 구현하여 만들었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | package everyProgramming; import java.util.ArrayList; public class Ch07 { public static void main(String[] args) { // input "abc 123 apple" // output "cba 321 elppa" String input = "abc 123 apple"; System.out.println(solution(input)); } public static String solution(String input) { String[] splitedStr = split(input); StringBuffer strBuffer = new StringBuffer(); for (String str : splitedStr) { strBuffer.append(reverse(str) + " "); } return strBuffer.toString(); } // 문자 나누기 public static String[] split(String input) { ArrayList<String> strList = new ArrayList<>(); StringBuffer strBuffer = new StringBuffer(); for (int i = 0; i < input.length(); i++) { if (input.charAt(i) == ' ') { strList.add(strBuffer.toString()); strBuffer = new StringBuffer(); } else { strBuffer.append(input.charAt(i)); } } strList.add(strBuffer.toString()); return strList.toArray(new String[strList.size()]); } // 거꾸 만들 public static String reverse(String input) { StringBuffer strBuffer = new StringBuffer(); for (int i = 0; i < input.length(); i++) { strBuffer.append(input.charAt(input.length() - i - 1)); } return strBuffer.toString(); } } | cs |
728x90
반응형
'프로그래밍 노트 > 알고리즘' 카테고리의 다른 글
코딩테스트 #8 (0) | 2018.04.24 |
---|---|
[JAVA] 퀵정렬(Quick Sort) (0) | 2018.04.18 |
코딩테스트 #6 (2) | 2018.04.10 |
코딩테스트 #5 (0) | 2018.03.28 |
코딩테스트 #4(팰린드롬Palindrome) (0) | 2018.03.27 |