프로그래머스

문자열 내마음대로 정렬하기

backend_fighting 2022. 12. 11. 11:44
728x90

로직 : 처음 이 문제를 봤을때 어떻게 풀지 몰라서 다른사람 코드를 보고 풀이법을 이해하고 풀었다.

import java.util.*;

class Solution {
    static public String[] solution(String[] strings, int n)
    {
        String[] answer = new String[strings.length];
        List<String>list = new ArrayList<>();
        for(int i=0;i<strings.length;i++)
        {
            list.add(strings[i].charAt(n)+strings[i]);
        }
        Collections.sort(list);
        for(int i=0;i<strings.length;i++)
        {
            answer[i] = list.get(i).substring(1);
        }
        return answer;
    }
}

시간이 너무 느리다.

 

베스트코드(프로그래머스 출처)

import java.util.*;

class Solution {
  public String[] solution(String[] strings, int n) {
      Arrays.sort(strings, new Comparator<String>(){
          @Override
          public int compare(String s1, String s2){
              if(s1.charAt(n) > s2.charAt(n)) return 1;
              else if(s1.charAt(n) == s2.charAt(n)) return s1.compareTo(s2);
              else if(s1.charAt(n) < s2.charAt(n)) return -1;
              else return 0;
          }
      });
      return strings;
  }
}

 

728x90