코딩테스트

[프로그래머스 / lv 1] 문자열 내림차순으로 배치하기 (JAVA)

lyndaa 2023. 4. 15. 01:16

문제


풀이 방법

  • 문자열을 배열로 변환 후 Arrays.sort()를 사용하여 정렬 후 다시 문자열로 반환한다.
    • mapToObj()는 기본형을 객체형으로 변환해서 처리하고, map()은 객체형을 객체형으로 변환해서 처리합니다. 하지만 반환값은 항상 객체형 스트림이며, 입력값에 따라 다른 형태의 객체형 스트림이 반환됩니다. 따라서 각 메소드 안에서 어떤 값을 넣느냐에 따라 반환값이 달라질 수 있습니다.
  • StringBuilder.reverse()를 활용해서 내림차순 정렬도 가능하다.

코드

import java.util.Arrays;
import java.util.Collections;
import java.util.stream.Collectors;
class Solution {
    public String solution(String s) {
        Character[] chars= s.chars().mapToObj(i->(char)i).toArray(Character[]::new);
        Arrays.sort(chars,Collections.reverseOrder());
        
        return Arrays.stream(chars)
                   .map(Object::toString)
                   .collect(Collectors.joining());
    }
}
import java.util.Arrays;

public class ReverseStr {
    public String reverseStr(String str){
        char[] sol = str.toCharArray();
    	Arrays.sort(sol);
    return new StringBuilder(new String(sol)).reverse().toString();
    //return Arrays.stream(chars)
                   .map(c->c+"")
                   .collect(Collectors.joining());
    }