import java.util.*;
class Solution {
public String[] solution(String[] files) {
String[] answer = {};
Arrays.sort(files,(a,b)->{
String[] first = sliceStr(a);
String[] second = sliceStr(b);
int headSort =first[0].toLowerCase().compareTo(second[0].toLowerCase());
if (headSort!=0) return headSort;
int fir=Integer.parseInt(first[1]);
int sec=Integer.parseInt(second[1]);
return Integer.compare(fir,sec);
});
return files;
}
public String[] sliceStr(String str){
//1 head 분리
int strEnd=0;
while(strEnd<str.length() && !Character.isDigit(str.charAt(strEnd)) ){
strEnd ++;
}
int numEnd=strEnd;
while(numEnd<str.length() && Character.isDigit(str.charAt(numEnd))){
numEnd ++;
}
// 숫자 분리
String head = str.substring(0,strEnd);
String num = str.substring(strEnd,numEnd);
return new String[]{head,num};
}
}
1. Character.isDigit -> 해당 문자 숫자인지 판별하는 함수
2.Integer.compare -> int형 값 비교 기본형이라 객체.compareTo(객체) 만 가능함.
3. Arrays.sort(정렬할 변수, (a,b)-> { })
'기타 > 코딩테스트' 카테고리의 다른 글
| (코테) 프로그래머스_파괴되지 않은 건물 *dp (2) | 2025.08.09 |
|---|---|
| (코테) 프로그래머스_땅따먹기 * DP (3) | 2025.08.07 |
| (코테) 프로그래머스_기둥과 보 설치 *시물레이션+구현 (3) | 2025.08.02 |
| (코테) 프로그래머스_셔틀버스 *시물레이션 정렬 (3) | 2025.07.30 |
| (코테) 프로그래머스_[3차] 압축 *정렬 문자열 변환 (3) | 2025.07.30 |