티스토리 뷰
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/17686
코딩테스트 연습 - [3차] 파일명 정렬
파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램��
programmers.co.kr
2. 설명
설명에 나온대로 정렬해서 품.
head랑 number을 나눠서 비교하고 tail은 필요없어서 따로 계산하지 않았다.
3. 코드
import java.util.*;
class Solution {
public String[] solution(String[] files) {
Arrays.sort(files, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
String head1 = s1.split("[0-9]")[0];
String head2 = s2.split("[0-9]")[0];
int compareHead = head1.toUpperCase().compareTo(head2.toUpperCase());
if(compareHead == 0) { // head가 같을 때 number 비교
s1 = s1.substring(head1.length());
s2 = s2.substring(head2.length());
String number1 = "";
for(char c : s1.toCharArray()) { // number
if(Character.isDigit(c) && number1.length()<=5)
number1 += c;
else
break;
}
String number2 = "";
for(char c : s2.toCharArray()) {
if(Character.isDigit(c) && number2.length()<=5)
number2 += c;
else
break;
}
return Integer.parseInt(number1) - Integer.parseInt(number2);
} else {
return compareHead;
}
}
});
return files;
}
}
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 타일 장식물 JAVA (피보나치수열, DP) (0) | 2020.06.16 |
---|---|
프로그래머스 종이접기 JAVA (0) | 2020.06.15 |
프로그래머스 [3차] n진수 게임 JAVA (0) | 2020.06.05 |
프로그래머스 [1차] 캐시 JAVA (0) | 2020.06.03 |
프로그래머스 뉴스 클러스터링 JAVA (0) | 2020.06.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday