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

2026. 5. 12. 12:23·프로그래머스
 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 


 

 

문제

 

 

제출한 코드

import java.util.*;

class Solution {
    public String[] solution(String[] strings, int n) {
        
        Arrays.sort(strings, (s1, s2) -> {
            if (s1.charAt(n) == s2.charAt(n))
                return s1.compareTo(s2);
            else return s1.charAt(n) - s2.charAt(n);
        });
        
        return strings;
    }
}

 

 

풀이

접근 방식을 잘 모르겠어서 구글링을 먼저 했다. 많은 풀이 방식이 나왔는데, 그 중에서 comepareTo() 메서드를 사용한 풀이를 선택해서 제출했다.

 

Arrays.sort() 는 기본적으로 오름차순으로 정렬된다.

아래 코드에서 볼 수 있듯이 첫 번째 인자에는 정렬하고 싶은 배열을, 두 번째 인자에는 Comparator를 넣을 수 있다.

public static <T> void sort(T[] a, Comparator<? super T> c) {
    if (c == null) {
        sort(a);
    } else {
        if (LegacyMergeSort.userRequested)
            legacyMergeSort(a, c);
        else
            TimSort.sort(a, 0, a.length, c, null, 0, 0);
    }
}

 

때문에 두 번째 인자에서 (s1, s2) 를 기준으로 두 문자열을 비교하는 코드를 작성했다.

비교하려는 두 문자열의 n번째 문자가 같으면 s1.compareTo(s2) 로 전체 문자열을 비교한 후 결과값을 반환하도록 했다.

comepareTo() 메서드는 두 값을 비교해서 같으면 0, s1이 사전상 먼저 오게 되면 음수를, 그렇지 않으면 양수를 반환한다.

만약 두 문자열의 n번째 문자가 다르면 s1.charAt(n) - s2.charAt(n) 값을 반환한다.

이때 return 값이 0이면 순서를 유지하게 되고, 음수가 반환되면 s1이 앞에 위치하게 되며, 양수가 반환되면 s2가 앞에 위치하게 되어서 최종적으로는 오름차순으로 배열이 정렬된다.

'프로그래머스' 카테고리의 다른 글

[프로그래머스] 68644번 - 두 개 뽑아서 더하기 [Java]  (0) 2026.05.15
[프로그래머스] 42748번 - K번째수 [Java]  (0) 2026.05.13
[프로그래머스] 81301번 - 숫자 문자열과 영단어 [Java]  (0) 2026.05.11
[프로그래머스] 12926번 - 시저 암호 [Java]  (0) 2026.05.08
[프로그래머스] 12930번 - 이상한 문자 만들기 [Java]  (0) 2026.05.04
'프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 68644번 - 두 개 뽑아서 더하기 [Java]
  • [프로그래머스] 42748번 - K번째수 [Java]
  • [프로그래머스] 81301번 - 숫자 문자열과 영단어 [Java]
  • [프로그래머스] 12926번 - 시저 암호 [Java]
이서라다
이서라다
  • 이서라다
    개발일지
    이서라다
  • 전체
    오늘
    어제
    • 전체 보기 (79)
      • 내일배움캠프 (21)
        • TIL (21)
      • 프로그래머스 (23)
      • Algorithm (2)
      • BackEnd (0)
        • Spring (0)
      • Language (4)
        • JAVA (4)
      • Git (2)
      • 백준 - Java (25)
        • 입출력과 사칙연산 (6)
        • 반복문 (8)
        • 1차원 배열 (1)
        • 문자열 (7)
        • 2차원 배열 (1)
        • 조합론 (1)
        • 정렬 (1)
      • IDE (1)
        • IntelliJ (1)
      • 티스토리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    til
    jdk삭제
    내일배움캠프
    티스토리스킨
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이서라다
[프로그래머스] 12915번 - 문자열 내 마음대로 정렬하기 [Java]
상단으로

티스토리툴바