[JAVA 문제 풀이] 271. 문자열 내 마음대로 정렬하기

프로그래머스 (12915)
Stupefyee's avatar
May 22, 2025
[JAVA 문제 풀이] 271. 문자열 내 마음대로 정렬하기
notion image
 

내가 작성한 코드

import java.util.*; class Solution { public String[] solution(String[] strings, int n) { String[] answer = new String[strings.length]; List<String> list = new ArrayList<>(Arrays.asList(strings)); // 정렬할 리스트 Collections.sort(list, new Comparator<String>() { // Comparator를 사용하여 정렬 기준을 정의 @Override public int compare(String o1, String o2) { // n번째 문자가 같으면 사전순으로 정렬 // n번째 문자가 다르면 n번째 문자로 정렬 if (o1.charAt(n) == o2.charAt(n)) { return o1.compareTo(o2); } else { return Character.compare(o1.charAt(n), o2.charAt(n)); } } }); // 정렬된 리스트를 배열로 변환 for (int i = 0; i < strings.length; i++) { answer[i] = list.get(i); } return answer; } }
 

다른 사람의 코드

import java.util.*; class Solution { public String[] solution(String[] strings, int n) { String[] answer = {}; ArrayList<String> arr = new ArrayList<>(); // n번째문자 + 원래문자열 리스트에 저장 for (int i = 0; i < strings.length; i++) { arr.add("" + strings[i].charAt(n) + strings[i]); } Collections.sort(arr); // 정렬 answer = new String[arr.size()]; // 첫번째 글자 제거 for (int i = 0; i < arr.size(); i++) { answer[i] = arr.get(i).substring(1, arr.get(i).length()); } return answer; } }
 
Share article

stupefyee