-
[프로그래머스] 파일명 정렬 (2018 KAKAO BLIND RECRUITMENT)ALGORITHM/PROGRAMMERS 2021. 2. 9. 22:51
programmers.co.kr/learn/courses/30/lessons/17686
2021-02-09
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;public class Solution17686 {public static ArrayList<File> list;static class File implements Comparable<File>{int idx;String head;int number;public File(int idx, String head, int number) {this.idx = idx;this.head = head;this.number = number;}@Overridepublic int compareTo(File file) {if(this.head.equals(file.head)) {if(this.number == file.number) return this.idx - file.idx;return this.number - file.number;}return this.head.compareTo(file.head);}}public static String[] solution(String[] files) {String[] answer = new String[files.length];list = new ArrayList<>();for(int i = 0; i < files.length; i++) {boolean flag = false;boolean numFlag = false;String head = "";String num = "";for(int j = 0; j < files[i].length(); j++) {if(flag && !(0 <= Character.getNumericValue(files[i].charAt(j)) && Character.getNumericValue(files[i].charAt(j)) <= 9)) {numFlag = true;} else if(!numFlag && (0 <= Character.getNumericValue(files[i].charAt(j)) && Character.getNumericValue(files[i].charAt(j)) <= 9)) {num += files[i].charAt(j);flag = true;} else if(!flag){head += files[i].charAt(j);}}list.add(new File(i, head.toLowerCase(), Integer.parseInt(num)));}Collections.sort(list);for(int i = 0; i < list.size(); i++) {answer[i] = files[list.get(i).idx];}return answer;}public static void main(String[] args) {String s[] = {"img12.png", "img10.png", "img02.png", "img1.png", "IMG01.GIF", "img2.JPG"};System.out.println(Arrays.toString(solution(s)));}}cs #문제풀이
파일명을 head와 number로 분리시킨 후, 정렬을 해주는 문제이다.
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] n진수 게임 (2018 KAKAO BLIND RECRUITMENT) (0) 2021.02.11 [프로그래머스] 방금그곡 (2018 KAKAO BLIND RECRUITMENT) (0) 2021.02.11 [프로그래머스] 메뉴 리뉴얼 (2021 KAKAO BLIND RECRUITMENT) (0) 2021.02.04 [프로그래머스] 합승 택시 요금 (2021 KAKAO BLIND RECRUITMENT) (0) 2021.01.31 [프로그래머스] 신규 아이디 추천 (2021 KAKAO BLIND RECRUITMENT) (0) 2021.01.26