Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- OptimisticLock
- spring DI
- ObjectOptimisticLockingFailureException
- ObjectOptimisticLockingFailureException 처리
- kotest testcontainers
- AccessToken
- TestContainers
- 소수찾기 java
- jpa
- S3
- Spring Cloud Gateway
- interface
- aop
- DI
- @transactional
- netty
- 우아한 테크러닝
- redissonlock aop
- 형상관리
- springsecurity
- spring aop
- RefreshToken
- 알고리즘
- 낙관적 락 재시도
- 멀티모듈 테스트컨테이너
- multimodule testcontainers
- Invalid property 'principal.username' of bean class
- 낙관적 락 롤백
- java
- 백준
Archives
- Today
- Total
조급하면 모래성이 될뿐
[프로그래머스] 파일명 정렬 본문
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/17686
코드
import java.util.Arrays;
import java.util.Comparator;
class Solution {
public String[] solution(String[] files) {
Arrays.sort(files, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String h1 = o1.split("[0-9]")[0];
String h2 = o2.split("[0-9]")[0];
int result = h1.toLowerCase().compareTo(h2.toLowerCase());
if ( result == 0 ) {
// 문자열이 같은 경우 숫자를 비교한다.
result = findNum(o1,h1)-findNum(o2,h2);
}
return result;
}
});
return files;
}
private int findNum( String s, String h ) {
s = s.replace(h, "");
String result ="";
for( char c : s.toCharArray()) {
if( Character.isDigit(c) && result.length() < 5 ) {
result+=c;
}else
break;
}
return Integer.valueOf(result);
}
}
제출결과
나이풀이
compare메서드를 Override하여 의도한대로 정렬이 되도록 구현하여 해결해 주었다 !
1. head를 찾아서 정렬한다.
2. head가 같은 경우에는 number를 비교하여 정렬한다.
반응형