๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์•Œ๊ณ ๋ฆฌ์ฆ˜

[2018 ์นด์นด์˜ค ๋ธ”๋ผ์ธ๋“œ ์ฑ„์šฉ] ํŒŒ์ผ๋ช… ์ •๋ ฌ

๋ฌธ์ œ

https://programmers.co.kr/learn/courses/30/lessons/17686

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - [3์ฐจ] ํŒŒ์ผ๋ช… ์ •๋ ฌ | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

ํŒŒ์ผ๋ช… ์ •๋ ฌ ์„ธ ์ฐจ๋ก€์˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์™€ ๋‘ ์ฐจ๋ก€์˜ ๋ฉด์ ‘์ด๋ผ๋Š” ๊ธฐ๋‚˜๊ธด ๋ธ”๋ผ์ธ๋“œ ๊ณต์ฑ„๋ฅผ ๋ฌด์‚ฌํžˆ ํ†ต๊ณผํ•ด ์นด์นด์˜ค์— ์ž…์‚ฌํ•œ ๋ฌด์ง€๋Š” ํŒŒ์ผ ์ €์žฅ์†Œ ์„œ๋ฒ„ ๊ด€๋ฆฌ๋ฅผ ๋งก๊ฒŒ ๋˜์—ˆ๋‹ค. ์ €์žฅ์†Œ ์„œ๋ฒ„์—๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๊ณผ๊ฑฐ ๋ฒ„์ „์„ ๋ชจ๋‘ ๋‹ด๊ณ  ์žˆ์–ด, ์ด๋ฆ„ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ํŒŒ์ผ ๋ชฉ๋ก์€ ๋ณด๊ธฐ๊ฐ€ ๋ถˆํŽธํ–ˆ๋‹ค. ํŒŒ์ผ์„ ์ด๋ฆ„ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด ๋‚˜์ค‘์— ๋งŒ๋“ค์–ด์ง„ ver-10.zip์ด ver-9.zip๋ณด๋‹ค ๋จผ์ € ํ‘œ์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฒ„์ „ ๋ฒˆํ˜ธ ์™ธ์—๋„ ์ˆซ์ž๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ ๋ชฉ๋ก์€ ์—ฌ๋Ÿฌ ๋ฉด์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ๋ถˆํŽธํ–ˆ๋‹ค. ์˜ˆ

programmers.co.kr

 

์†Œ์Šค์ฝ”๋“œ

import java.util.Arrays;

public class Solution {

    static class File implements Comparable<File> {
        String name, head;
        Integer number;

        public File(String name, String head, Integer number) {
            this.name = name;
            this.head = head;
            this.number = number;
        }

        @Override
        public int compareTo(File o) {
            return (this.head.equals(o.head))?
                    (this.number - o.number) :
                    (this.head.compareTo(o.head));
        }
    }

    public static String[] solution(String[] files) {

        return Arrays.stream(files)
                .map(Solution::makeFile)
                .sorted()
                .parallel()
                .map((file) -> file.name)
                .toArray(String[]::new);
    }

    public static File makeFile(String name) {

        String head = name.split("\\d")[0].toUpperCase();
        String number = Arrays.stream(name.split("\\D"))
                            .filter(s -> s.length()>0)
                            .findFirst().get();

        return new File(name, head, Integer.parseInt(number));
    }

}

 

ํšŒ๊ณ 

 ๋ฌธ์ž์—ด ๋ฌธ์ œ์—์„œ ์ •๊ทœํ‘œํ˜„์‹์ด ์œ ์šฉํ•˜๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ฌ์•˜๋‹ค. ๋‚ด์ผ ๊ณต๋ถ€ํ•ด์•ผ์ง€...