๋ฌธ์ ์ค๋ช
๋ฌธ์์ด๋ก ๊ตฌ์ฑ๋ ๋ฆฌ์คํธ strings์, ์ ์ n์ด ์ฃผ์ด์ก์ ๋, ๊ฐ ๋ฌธ์์ด์ ์ธ๋ฑ์ค n๋ฒ์งธ ๊ธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ ค ํฉ๋๋ค. ์๋ฅผ ๋ค์ด strings๊ฐ ["sun", "bed", "car"]์ด๊ณ n์ด 1์ด๋ฉด ๊ฐ ๋จ์ด์ ์ธ๋ฑ์ค 1์ ๋ฌธ์ "u", "e", "a"๋ก strings๋ฅผ ์ ๋ ฌํฉ๋๋ค.
์ ํ ์กฐ๊ฑด- strings๋ ๊ธธ์ด 1 ์ด์, 50์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค.
- strings์ ์์๋ ์๋ฌธ์ ์ํ๋ฒณ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- strings์ ์์๋ ๊ธธ์ด 1 ์ด์, 100์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค.
- ๋ชจ๋ strings์ ์์์ ๊ธธ์ด๋ n๋ณด๋ค ํฝ๋๋ค.
- ์ธ๋ฑ์ค 1์ ๋ฌธ์๊ฐ ๊ฐ์ ๋ฌธ์์ด์ด ์ฌ๋ฟ ์ผ ๊ฒฝ์ฐ, ์ฌ์ ์์ผ๋ก ์์ ๋ฌธ์์ด์ด ์์ชฝ์ ์์นํฉ๋๋ค.
["sun", "bed", "car"] | 1 | ["car", "bed", "sun"] |
["abce", "abcd", "cdx"] | 2 | ["abcd", "abce", "cdx"] |
์
์ถ๋ ฅ ์ 1
"sun", "bed", "car"์ 1๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ ๊ฐ๊ฐ "u", "e", "a" ์
๋๋ค. ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก strings๋ฅผ ์ ๋ ฌํ๋ฉด ["car", "bed", "sun"] ์
๋๋ค.
์
์ถ๋ ฅ ์ 2
"abce"์ "abcd", "cdx"์ 2๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ "c", "c", "x"์
๋๋ค. ๋ฐ๋ผ์ ์ ๋ ฌ ํ์๋ "cdx"๊ฐ ๊ฐ์ฅ ๋ค์ ์์นํฉ๋๋ค. "abce"์ "abcd"๋ ์ฌ์ ์์ผ๋ก ์ ๋ ฌํ๋ฉด "abcd"๊ฐ ์ฐ์ ํ๋ฏ๋ก, ๋ต์ ["abcd", "abce", "cdx"] ์
๋๋ค.
๐ฅ [๋ก์ง]
์ ๋ ฌ์ ์ํ ์ธํฐํ์ด์ค์ธ Comparator๋ฅผ ์ฌ์ฉํ๋ค.
compareํจ์๋ฅผ overrideํด์ n๋ฒ์งธ ๊ธ์์ ์์คํค์ฝ๋๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ณ , ๋ง์ฝ ๋ ๊ธ์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ์ ์ฒด๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น๊ตํ๋๋ก ํ๋ค.
๐ฅ [์ต์ข ์ฝ๋]
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
Arrays.sort(strings, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
if(s1.charAt(n) > s2.charAt(n)) {
return 1;
} else if(s1.charAt(n) == s2.charAt(n)) {
return s1.compareTo(s2);
} else {
return -1;
}
}
});
return strings;
}
}
๐ฅ [์๊ฐ]
Comparator ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ฑด ์ฒ์์ด์๋๋ฐ ์ ๋ ฌ์ ์์ด์ ๊ต์ฅํ ํจ์จ์ ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. Arrays.sort์์ Comparator ์์ฑ๊ณผ ๋์์ ์ค๋ฒ๋ผ์ด๋ํ๋ ๋ฐฉ์์ผ๋ก ๋ผ์ธ์ ์ค์ด๋ฉด์ ์กฐ๊ธ ๋ ํจ์จ์ ์ผ๋ก ์ฝ๋ฉ์ ํ ์ ์์๋ค.
์ฝํ ์ค๋น๋ฅผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์์ํ์ง ์ผ๋ง ๋์ง ์์ ์ฝ๋์ ๋ฏธํกํ ์ ์ด ๋ง์ ์ ์์ต๋๋ค.
๋ถ์กฑํ ์ ํผ๋๋ฐฑ ์ฃผ์๋ฉด ์์ผ๋ก์ ํฌ์คํ ์ ๋ฐ์ํ๊ฒ ์ต๋๋ค! ๋ด์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค :)
-budtree