csct3434
[level 2] [3차] 파일명 정렬 - 17686 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.Arrays;
class Solution {
public String[] solution(String[] files) {
Arrays.sort(files, (str1, str2) -> {
String head1 = parseHead(str1.toLowerCase());
String head2 = parseHead(str2.toLowerCase());
if (head1.compareTo(head2) == 0) {
Integer number1 = parseNumber(str1.substring(head1.length()));
Integer number2 = parseNumber(str2.substring(head2.length()));
return number1.compareTo(number2);
}
return head1.compareTo(head2);
});
return files;
}
private String parseHead(String str) {
StringBuilder stringBuilder = new StringBuilder();
for (char c : str.toCharArray()) {
if (Character.isDigit(c)) {
break;
}
stringBuilder.append(c);
}
return stringBuilder.toString();
}
private Integer parseNumber(String str) {
StringBuilder stringBuilder = new StringBuilder();
for (char c : str.toCharArray()) {
if (!Character.isDigit(c) || stringBuilder.length() == 5) {
break;
}
stringBuilder.append(c);
}
return Integer.valueOf(stringBuilder.toString());
}
}
'프로그래머스' 카테고리의 다른 글
[level 2] 전화번호 목록 - 42577 (0) | 2024.02.28 |
---|---|
[level 2] [3차] n진수 게임 - 17687 (0) | 2024.02.28 |
[level 2] [3차] 압축 - 17684 (0) | 2024.02.28 |
[level 2] [1차] 캐시 - 17680 (0) | 2024.02.28 |
[level 2] [1차] 프렌즈4블록 - 17679 (0) | 2024.02.28 |