๋ฌธ์
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));
}
}
ํ๊ณ
๋ฌธ์์ด ๋ฌธ์ ์์ ์ ๊ทํํ์์ด ์ ์ฉํ๋ค๋ ๊ฑธ ๊นจ๋ฌ์๋ค. ๋ด์ผ ๊ณต๋ถํด์ผ์ง...
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ] ์ง๊ฒ๋ค๋ฆฌ ๊ฑด๋๊ธฐ (0) | 2020.04.01 |
---|---|
[2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ] ํธํ ๋ฐฉ ๋ฐฐ์ (0) | 2020.04.01 |
[2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ] ์ ํ๋ฒ์ค (0) | 2020.03.16 |
[2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ] ๋ด์ค ํด๋ฌ์คํฐ๋ง (0) | 2020.03.16 |
[2018 ์นด์นด์ค ๋ธ๋ผ์ธ๋ ์ฑ์ฉ] ์ถ์ ํธ๋ํฝ (0) | 2020.03.16 |