코딩테스트 - 프로그래머스/Lv. 0

[40] JAVA 문자열 뒤집기

유혁스쿨 2023. 11. 16. 18:03
728x90
반응형

문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000


입출력 예

my_string return
"jaron"
"noraj"
"bread" "daerb"


입출력 예 #1

  • 2my_string이 "jaron"이므로 거꾸로 뒤집은 "noraj"를 return합니다.

입출력 예 #2

  • my_string이 "bread"이므로 거꾸로 뒤집은 "daerb"를 return합니다.

[나의 풀이]

import java.util.*;
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.Collections;
class Solution {
    public String solution(String my_string) {
        List<String> collect = Arrays.stream(my_string.split("")).collect(Collectors.toList());
        Collections.reverse(collect);
        StringBuffer sb = new StringBuffer();
        collect.forEach(str -> sb.append(str));
        return sb.toString();
    }
}

 

[풀이과정] 

  • Arrays.stream()에 split("")한 String배열을 매개변수에 전달.
  • collect()로 수집한 후 Collectors.toList()를 통해 List로 변환
  • Collections의 reverse() 메소드에 해당 리스트를 넘겨 역순정렬.
  • 역순정렬된 list를 반복문을 통해 StringBuffer에 문자열 배열 요소 순차적으로 누적합 연산.
  • 문자열로 변환하여 반환.

[다른 풀이]

import java.util.*;
class Solution {
	public String solution(String my_string) {
    	StringBuilder sb = new StringBuilder();
        // StringBuffer sb = new StringBuffer();
        sb.append(my_string);
        sb.reverse();
        return sb.toString();
    }
}

StringBuilder와 StringBuffer도 reverse()를 지원한다.

 

return new StringBuffer(my_string).reverse().toString();

StringBuilder 생성자에 값을 세팅하고 메소드체이닝 방식으로 사용도 가능하다.

728x90
반응형