조급하면 모래성이 될뿐

[프로그래머스] 파일명 정렬 본문

카테고리 없음

[프로그래머스] 파일명 정렬

Pawer0223 2020. 4. 12. 11:55

문제 링크 : 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를 비교하여 정렬한다.

반응형