์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ํํ๋ก์ ํธ
- ์๋ฐComparable
- ์๋ฐforeach
- ์ฐ์ ์์ํ์๋ฐ
- ์๋ฐ๋ฆฌ์คํธ์ ๋ ฌ
- ์๋ฐ์คํฌ๋ฆฝํธfilter
- ํ๋ก๊ทธ๋๋จธ์ค๋๋์ง
- ์คํ๋งํต์ฌ์์
- ํ๋ก์ ํธํ๊ณ
- webrtc
- ๋๋์ง์๋ฐ
- Programmers๋๋์ง
- ๊ฐ์ฒด์งํฅ๋คํ์ฑ
- ์๋ฐComparator
- openvidu
- ๊ฐ์ฒด์งํฅ์ถ์ํ
- ์๋ฐreduce
- ์๋ฐ์คํฌ๋ฆฝํธreduce
- ๋ชจ๋๋ฆฌํฑ ์ํคํ ์ฒ
- node์์กด์ฑ์ฃผ์
- ์๋ฐfilter
- ์๋ฐ ๊ฐ๋น์ง์ปฌ๋ ์
- ์๋ฐ๋ฐฐ์ด์ ๋ ฌ
- ํ๋ก๊ทธ๋๋จธ์ค๊ฐ์ฅํฐ์
- Programmers๊ฐ์ฅํฐ์
- ํด๋ผ์ฐ๋ํ์
- ์๋ฐstream
- ์๋ฐ์คํฌ๋ฆฝํธmap
- ์๋ฐ์คํฌ๋ฆฝํธforeach
- ๊ฐ์ฒด์งํฅsolid
- Today
- Total
I'm pine thank you and you?
ํ๋ก๊ทธ๋๋จธ์ค ๊ฐ์ฅ ํฐ ์ (Java) ๋ณธ๋ฌธ
๐ ๋ฌธ์
๐ค ๋ฌธ์ ๋ถ์
numbers ๋ฐฐ์ด์ ํน์ ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌํ์ฌ ๋ถ์ด๋ ๋ฌธ์ ์ด๋ค.
์๋ฐ ๋ด์ฅํจ์์ธ sort๋ฅผ ์ด์ฉํ๋, ์ ๋ ฌ ์กฐ๊ฑด์ Comparable ๋๋ Comparator๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ๊ตฌํํ์.
public interface Comparable<T>
int compareTo(T o)
์๊ธฐ ์์ ๊ณผ ๋งค๊ฐ๋ณ์๋ฅผ ๋น๊ต
Comparable์ Lang ํจํค์ง์ ์กด์ฌํ์ฌ import๋ฅผ ํ์ง ์๊ณ ๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
public interface Comparator<T>
int compare(T o1, T o2);
๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋น๊ต
์๊ธฐ ์์ ์ ์ํ๊ฐ ์ด๋ป๋ ์๊ด์์ด ํ๋ผ๋ฏธํฐ๋ก ๋ค์ด์ค๋ ๋ ๊ฐ์ฒด๋ฅผ ๋น๊ตํ๋ ๊ฒ
๐ ํ์ด
1. numbers ๋ฐฐ์ด์ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ ๋ฆฌ์คํธ์ ์ ์ฅ
2. ๋ฆฌ์คํธ๋ฅผ Comparator๋ฅผ ์ด์ฉํ์ฌ ์ ๋ ฌ
๋ฐฉ๋ฒ1
new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int num1 = Integer.parseInt(o1 + o2);
int num2 = Integer.parseInt(o2 + o1);
return num2 - num1;
}
}
์๋ค ๋ฌธ์์ด์ ๋ํ์ฌ int๋ก ๋ณํํ ํ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
๋ฐฉ๋ฒ2
new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
return (o2+o1).compareTo(o1+o2);
}
}
๋ฌธ์์ด ์์ฒด๋ฅผ ๋น๊ต
๋ฌธ์์ด "610"์ "106"๋ฅผ ๋น๊ตํ๋ฉด ๋ฌธ์ ์ธ์ฝ๋ฉ ์ฒด๊ณ์ ์์์ ๋ฐ๋ผ ์ ๋ ฌ ๋๋ค.
์ด ๋ฐฉ๋ฒ์ด ์ฝ๋๊ฐ ๋ ๊ฐ๊ฒฐํ๋ค.
3. ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ฌธ์์ด๋ก appendํ์ฌ ์ถ๋ ฅ
๐คฆ ์ํ์ฐฉ์ค
๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฆฌ์คํธ์ ์ฒซ๋ฒ์งธ ๊ฐ์ด 0์ธ ๊ฒฝ์ฐ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผํ๋ค.
๋ง์ฝ {0, 0, 0, 0} ๋ผ๋ฉด 0๋ง ์ถ๋ ฅํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ด๋ค.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Programmers_๊ฐ์ฅํฐ์ {
public static void main(String[] args) {
System.out.println(solution(new int[] {6, 10, 2}));
System.out.println(solution(new int[] {3, 30, 34, 5, 9}));
}
private static String solution(int[] numbers) {
StringBuilder answer = new StringBuilder();
// ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ ๋ฆฌ์คํธ์ ์ ์ฅ
ArrayList<String> strList = new ArrayList<>();
for (int number : numbers) {
strList.add(String.valueOf(number));
}
// ์ ๋ ฌ๊ธฐ์ค์ Comparator๋ก ์ง์ ๊ตฌํ
Collections.sort(strList, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int num1 = Integer.parseInt(o1 + o2);
int num2 = Integer.parseInt(o2 + o1);
return num2 - num1;
}
});
if (strList.get(0).equals("0")) // 0 ์์ธ์ฒ๋ฆฌ
answer.append("0");
else
strList.stream().forEach(s -> answer.append(s));
return answer.toString();
}
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ์ด์ค์ฐ์ ์์ํ (Java, PriorityQueue) (1) | 2023.06.27 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ๋๋์ง (Java) (1) | 2023.03.28 |
ํต์ ๋ ฌ(Quick Sort) ์ฝ๊ฒ ์๊ธฐ (Java) (0) | 2022.12.13 |