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
- RefreshToken
- 우아한 테크러닝
- spring aop
- S3
- multimodule testcontainers
- AccessToken
- interface
- aop
- jpa
- @transactional
- DI
- 백준
- springsecurity
- spring DI
- Spring Cloud Gateway
- ObjectOptimisticLockingFailureException
- ObjectOptimisticLockingFailureException 처리
- Invalid property 'principal.username' of bean class
- redissonlock aop
- java
- 형상관리
- 알고리즘
- kotest testcontainers
- TestContainers
- 낙관적 락 롤백
- 소수찾기 java
- 멀티모듈 테스트컨테이너
- OptimisticLock
- netty
- 낙관적 락 재시도
Archives
- Today
- Total
조급하면 모래성이 될뿐
[프로그래머스] 파일명 정렬 본문
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/17686
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
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를 비교하여 정렬한다.
반응형