본문 바로가기
IT/알고리즘

프로그래머스 문자열 내림차순으로 배치하기

by 어센트 2020. 5. 17.

https://programmers.co.kr/learn/courses/30/lessons/12917

 

코딩테스트 연습 - 문자열 내림차순으로 배치하기

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 �

programmers.co.kr

 

 

 

 

 

이 문제를 보고 두가지 방법을 떠올렸다.

  1. Arrays.sort()로 정렬 후 뒤집기

  2. Collection에 Comparator를 이용하기

2의 방법으로 문제를 해결했는데 코드에디터의 도움 없이 Comparator를 이용하기 힘들 것 같다. 조금 더 익숙해질 필요가 있을 것 같다.

import  java.util.*;
public class 문자열_내림차순으로배치하기 {
    public static void main(String[] args) {
        String s="Zbcdefg";
        System.out.println(solution(s));
    }
    public static String solution(String s) {
        String answer = "";
        ArrayList<Character> list = new ArrayList<>();
        for(int i=0;i<s.length();i++)
        {
            list.add(s.charAt(i));
        }
        Collections.sort(list, new Comparator<Character>() {
            @Override
            public int compare(Character o1, Character o2) {
                if(o1<o2) return 1;
                else if(o1==o2) return 0;
                else return -1;
            }
        });
        for(char c:list){
            answer+=Character.toString(c);
        }
        return answer;
    }
}

다른 풀이

Char[]를 바로 new String()으로 String형으로 바꿀 수 있다는 것을 배웠다.

   public static String solution2(String s) {
        char [] ar = s.toCharArray();
        Arrays.sort(ar);
        StringBuilder sb = new StringBuilder(new String(ar)).reverse();
        return sb.toString();
    }

'IT > 알고리즘' 카테고리의 다른 글

프로그래머스 H-Index  (0) 2020.05.19
프로그래머스 완주하지 못한 선수  (0) 2020.05.17
프로그래머스 모의고사  (0) 2020.05.16
프로그래머스 괄호변환  (0) 2020.05.16
프로그래머스 큰 수 만들기  (0) 2020.05.14