https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=java
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
1. ๋ฌธ์
์์์ ๋ด์ผ๋ ค๋ ๊ทค ๊ฐ์์ ๊ทค ํฌ๊ธฐ ๋ฐฐ์ด์ด ์ฃผ์ด์ง๋ค. ๊ทค ํฌ๊ธฐ๊ฐ ๋๋๋ก ๊ฐ์ ๊ทค๋ค๋ง ์์์ ๋ด์ผ๋ คํ ๋,
์์์ ๋ด์ ์ ์๋ ์ต์์ ๊ทค ํฌ๊ธฐ ์(์ข ๋ฅ์ ๊ฐ์)๋ฅผ ์ถ๋ ฅํ๋ค.
2. ํ์ด
1. ๊ทค ํฌ๊ธฐ, ๊ทค ๋ฐฐ์ด์ ๋ฐ์์์ ํด์๋งต์ key, ์ด์ ๊ฐ+1 ํด์ ๋ฃ์ด์ค
2. ํด์๋งต ArrayList๋ก ์ ๋ ฌ (value ํฐ ์์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ)
3. ๋ด์ผ๋ ค๋ ๊ทค ๊ฐ์์์ list ์ ๋ ฌ๋ ์์๋๋ก value๊ฐ ์ค์, ์ข ๋ฅ์ ๊ฐ์ +1
3. ์ฝ๋
package p230103;
import java.io.*;
import java.util.*;
public class PG_๊ทค๊ณ ๋ฅด๊ธฐ {
public static void main(String[] args) throws Exception {
int k = 6;
int[] tangerine = {1, 3, 2, 5, 4, 5, 2, 3};
System.out.println(solution(k, tangerine));
int k2 = 4;
int[] tangerine2 = {1, 3, 2, 5, 4, 5, 2, 3};
System.out.println(solution(k2, tangerine2));
int k3 = 2;
int[] tangerine3 = {1, 1, 1, 1, 2, 2, 2, 3};
System.out.println(solution(k3, tangerine3));
}
public static int solution(int k, int[] tangerine) {
int answer = 0;
// 1. ํด์๋งต์ ๊ฐ ๋ฃ์ด์ค
Map<Integer, Integer> map = new HashMap<> ();
for (int t: tangerine) {
map.put(t, map.getOrDefault(t, 0)+1); //map์ ํด๋น key ๊ฐ์ด ์์ผ๋ฉด ๊ทธ ํค ๊ฐ ๊ฐ์ ธ์ค๊ณ , ์์ผ๋ฉด 0์ ๋ฃ๊ฒ ๋ค
}
// 2. ํด์๋งต ArrayList์ ๋ฃ์ด์ ์ ๋ ฌ
List<Integer> list = new ArrayList<> (map.values()); //map.keySet() => key๋ก ์ ๋ ฌ / map.values() => value๋ก ์ ๋ ฌ
//list.sort((o1,o2) -> o2-o1); //๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
list.sort((o1,o2) -> o2-o1);
System.out.println(list.toString());
// 3. ์ข
๋ฅ ์ธ๊ธฐ
int idx=0;
while (k > 0) {
k -= list.get(idx++); //list.indexOf("๊ฐ")๋ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌํดํ๋ ๊ฒ. ๊ฐ์ ๋ฆฌํดํ๋ ค๋ฉด list.get(idx) ์ฌ์ฉ
answer++;
}
return answer;
}
}
4. ์ฌ๋ด
ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ๋ ์ ๋๋ก ํธ๋๊ฑด ์ฒ์์ธ ๊ฒ ๊ฐ๋ค
๋ฐฑ์ค์ด๋ ๋ฐฉ์์ ์ฝ๊ฐ ๋ค๋ฅธ๋ฐ ์ฌ๋ฐ๋ ๊ฒ ๊ฐ๋ค
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์ด์ค์ฐ์ ์์ํ - Java (0) | 2023.08.17 |
---|---|
[Programmers] ์ ํ์ ์๊ฐ์ด๋ - Java (0) | 2023.08.11 |
[Programmers] ๊ตฌ๋ช ๋ณดํธ - Java (0) | 2023.07.10 |
[Programmers] ์นดํซ - Java (0) | 2023.07.09 |
[Programmers] ์์ด ๋๋ง์๊ธฐ - Java (0) | 2023.01.09 |