본문 바로가기

Java/프로그래머스

[JAVA] 프로그래머스 - 문자열 내 마음대로 정렬하기

https://school.programmers.co.kr/learn/courses/30/lessons/12915

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

정답 

 

import java.util.*;

class Solution {
    public String[] solution(String[] strings, int n) {
        
        //strings[i]의 n번째 인덱스의 문자순으로 오름차순 정렬 
        Arrays.sort(strings, new Comparator<String>(){
            @Override
            public int compare(String o1, String o2)
            {
                char c1 = o1.charAt(n);
                char c2 = o2.charAt(n);
                
                if(c1==c2)
                {
                    return o1.compareTo(o2);
                }
                else
                {
                    return Character.compare(c1,c2);
                }
            }
        });
        return strings;
    }
}

 

 

 

다른 사람의 풀이 

 

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;
  }
}