요르딩딩
프로그래머스 : 파일명 정렬 (comparator , 정규식) 본문
728x90
반응형
이번문제는 검색해서 찾아보기 전까지는 해결방법을 적용하기가 어려웠다고 생각한다.
찾아보니 comparator와 정규식을 사용하면 보다 편하게 풀 수 잇었다는것을 배울 수 있었다.
이번기회에 comparator와 정규식을 익혀야겠다
import java.util.*;
class Solution {
public String[] solution(String[] files) {
String[] answer = {};
compartor c = new compartor();
Arrays.sort(files, c);
return files;
}
}
class compartor implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
String tmpHead1 = o1.split("[0-9]")[0];
String tmpHead2 = o2.split("[0-9]")[0];
int result = (tmpHead1.toLowerCase()).compareTo(tmpHead2.toLowerCase()); //모두 소문자로 통일 후 비교
if(result == 0 ) { //Head가 같을 경우 숫자 비교하기
o1 = o1.replaceAll(tmpHead1, ""); //숫자앞 문자 지우기
o2 = o2.replaceAll(tmpHead2, "");
o1 = o1.replaceAll(" ", "");
o2 = o2.replaceAll(" ", "");
String tmpNum1 = o1.split("[a-zA-Z.-]")[0];
String tmpNum2 = o2.split("[a-zA-Z.-]")[0];
result = Integer.parseInt(tmpNum1)- (Integer.parseInt(tmpNum2));
}
return result;
}
728x90
반응형
'[코딩테스트] > 문제풀이' 카테고리의 다른 글
프로그래머스 : 방금그곡 (0) | 2022.04.20 |
---|---|
프로그래머스 : 124나라 (규칙찾기) (0) | 2022.04.19 |
프로그래머스 : 주차 요금 계산 (0) | 2022.04.12 |
프로그래머스 : 멀쩡한 사각형 (최대공약수) (0) | 2022.04.11 |
백준 : 2563 : 색종이 (구현) (0) | 2022.04.01 |
Comments