[programmers] μ€ν¨μ¨ - Java
μνΌ κ²μ κ°λ°μ μ€λ 리λ μ€ν¨μ¨μ κ³μ°νλ μ½λλ₯Ό μμ±ν΄μΌ νλ€. μ€ν¨μ¨μ μ€ν
μ΄μ§μ λλ¬νμΌλ ν΄λ¦¬μ΄νμ§ λͺ»ν νλ μ΄μ΄μ μλ₯Ό μ€ν
μ΄μ§μ λλ¬ν νλ μ΄μ΄ μλ‘ λλ κ°μ΄λ€. μ€ν
μ΄μ§μ κ°μ Nκ³Ό μ¬μ©μκ° νμ¬ λ©μΆ°μλ μ€ν
μ΄μ§μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ stagesκ° μ£Όμ΄μ§ λ, μ€ν¨μ¨μ΄ λμ μ€ν
μ΄μ§λΆν° λ΄λ¦Όμ°¨μμΌλ‘ μ€ν
μ΄μ§μ λ²νΈκ° λ΄κ²¨μλ λ°°μ΄μ λ°ννλ solution ν¨μλ₯Ό μμ±ν΄μΌ νλ€. μ΄λ₯Ό μν΄ λ°°μ΄κ³Ό HashMapμ μ¬μ©νλ©°, HashMapμ keySetμ Listμ λ£μ ν, Listμ sort λ©μλλ‘ κ°μ μ λ ¬νλ€.
Apr 09, 2024
μ€ν¨μ¨
λ¬Έμ μ€λͺ

μνΌ κ²μ κ°λ°μ μ€λ 리λ ν° κ³ λ―Όμ λΉ μ‘λ€. κ·Έλ
κ° λ§λ νλμ¦ μ€μ²μ±μ΄ λμ±κ³΅μ κ±°λμ§λ§, μμ¦ μ κ· μ¬μ©μμ μκ° κΈκ°ν κ²μ΄λ€. μμΈμ μ κ· μ¬μ©μμ κΈ°μ‘΄ μ¬μ©μ μ¬μ΄μ μ€ν
μ΄μ§ μ°¨μ΄κ° λ무 ν° κ²μ΄ λ¬Έμ μλ€.
μ΄ λ¬Έμ λ₯Ό μ΄λ»κ² ν κΉ κ³ λ―Ό ν κ·Έλ
λ λμ μΌλ‘ κ²μ μκ°μ λλ €μ λμ΄λλ₯Ό μ‘°μ νκΈ°λ‘ νλ€. μμ μνΌ κ°λ°μλΌ λλΆλΆμ λ‘μ§μ μ½κ² ꡬννμ§λ§, μ€ν¨μ¨μ ꡬνλ λΆλΆμμ μκΈ°μ λΉ μ§κ³ λ§μλ€. μ€λ 리λ₯Ό μν΄ μ€ν¨μ¨μ ꡬνλ μ½λλ₯Ό μμ±νλΌ.
- μ€ν¨μ¨μ λ€μκ³Ό κ°μ΄ μ μνλ€.
- μ€ν μ΄μ§μ λλ¬νμΌλ μμ§ ν΄λ¦¬μ΄νμ§ λͺ»ν νλ μ΄μ΄μ μ / μ€ν μ΄μ§μ λλ¬ν νλ μ΄μ΄ μ
μ 체 μ€ν
μ΄μ§μ κ°μ N, κ²μμ μ΄μ©νλ μ¬μ©μκ° νμ¬ λ©μΆ°μλ μ€ν
μ΄μ§μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ stagesκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ€ν¨μ¨μ΄ λμ μ€ν
μ΄μ§λΆν° λ΄λ¦Όμ°¨μμΌλ‘ μ€ν
μ΄μ§μ λ²νΈκ° λ΄κ²¨μλ λ°°μ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±νλΌ.
μ νμ¬ν
- μ€ν
μ΄μ§μ κ°μ Nμ
1μ΄μ500μ΄νμ μμ°μμ΄λ€.
- stagesμ κΈΈμ΄λ
1μ΄μ200,000μ΄νμ΄λ€.
- stagesμλ
1μ΄μN + 1μ΄νμ μμ°μκ° λ΄κ²¨μλ€. - κ° μμ°μλ μ¬μ©μκ° νμ¬ λμ μ€μΈ μ€ν μ΄μ§μ λ²νΈλ₯Ό λνλΈλ€.
- λ¨,
N + 1μ λ§μ§λ§ μ€ν μ΄μ§(N λ²μ§Έ μ€ν μ΄μ§) κΉμ§ ν΄λ¦¬μ΄ ν μ¬μ©μλ₯Ό λνλΈλ€.
- λ§μ½ μ€ν¨μ¨μ΄ κ°μ μ€ν μ΄μ§κ° μλ€λ©΄ μμ λ²νΈμ μ€ν μ΄μ§κ° λ¨Όμ μ€λλ‘ νλ©΄ λλ€.
- μ€ν
μ΄μ§μ λλ¬ν μ μ κ° μλ κ²½μ° ν΄λΉ μ€ν
μ΄μ§μ μ€ν¨μ¨μ
0μΌλ‘ μ μνλ€.
μ μΆλ ₯ μ
N | stages | result |
5 | [2, 1, 2, 6, 2, 4, 3, 3] | [3,4,2,1,5] |
4 | [4,4,4,4,4] | [4,1,2,3] |
μ μΆλ ₯ μ μ€λͺ
μ
μΆλ ₯ μ #1
1λ² μ€ν
μ΄μ§μλ μ΄ 8λͺ
μ μ¬μ©μκ° λμ νμΌλ©°, μ΄ μ€ 1λͺ
μ μ¬μ©μκ° μμ§ ν΄λ¦¬μ΄νμ§ λͺ»νλ€. λ°λΌμ 1λ² μ€ν
μ΄μ§μ μ€ν¨μ¨μ λ€μκ³Ό κ°λ€.
- 1 λ² μ€ν μ΄μ§ μ€ν¨μ¨ : 1/8
2λ² μ€ν
μ΄μ§μλ μ΄ 7λͺ
μ μ¬μ©μκ° λμ νμΌλ©°, μ΄ μ€ 3λͺ
μ μ¬μ©μκ° μμ§ ν΄λ¦¬μ΄νμ§ λͺ»νλ€. λ°λΌμ 2λ² μ€ν
μ΄μ§μ μ€ν¨μ¨μ λ€μκ³Ό κ°λ€.
- 2 λ² μ€ν μ΄μ§ μ€ν¨μ¨ : 3/7
λ§μ°¬κ°μ§λ‘ λλ¨Έμ§ μ€ν
μ΄μ§μ μ€ν¨μ¨μ λ€μκ³Ό κ°λ€.
- 3 λ² μ€ν μ΄μ§ μ€ν¨μ¨ : 2/4
- 4λ² μ€ν μ΄μ§ μ€ν¨μ¨ : 1/2
- 5λ² μ€ν μ΄μ§ μ€ν¨μ¨ : 0/1
κ° μ€ν
μ΄μ§μ λ²νΈλ₯Ό μ€ν¨μ¨μ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νλ©΄ λ€μκ³Ό κ°λ€.
- [3,4,2,1,5]
μ
μΆλ ₯ μ #2
λͺ¨λ μ¬μ©μκ° λ§μ§λ§ μ€ν
μ΄μ§μ μμΌλ―λ‘ 4λ² μ€ν
μ΄μ§μ μ€ν¨μ¨μ 1μ΄λ©° λλ¨Έμ§ μ€ν
μ΄μ§μ μ€ν¨μ¨μ 0μ΄λ€.
- [4,1,2,3]
solution.java
import java.util.*;
class Solution {
public int[] solution(int N, int[] stages) {
int[] arr = new int[N+1];
double reachedPlayer = stages.length;
for(int i=0; i<stages.length; i++){
arr[stages[i]-1]++;
}
HashMap<Integer, Double> map = new HashMap<>();
for(int i=0; i<arr.length-1; i++){
double num = 0.0;
if(arr[i]!=0){
num = arr[i] / reachedPlayer;
}
map.put(i+1, num);
reachedPlayer -= arr[i];
}
List<Integer> keySet = new ArrayList<>(map.keySet());
int[] answer = new int[N];
keySet.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1)));
for(int i=0; i<keySet.size(); i++){
answer[i] = keySet.get(i);
}
return answer;
}
}ν΅μ¬ ν€μλ
- λ°°μ΄μ μ μΈν΄μ ν΄λΉνλ μ¬μ©μκ° νμ¬ λ©μΆ°μλ μ€ν μ΄μ§λ₯Ό λ°°μ΄μ μΈλ±μ€λ‘ μ§μ ν΄μ κ°μ μ¦κ°μν¨λ€.
HashMapμ μ μΈν΄μ μ€ν¨μ¨κ³Ό μΈλ±μ€λ₯Ό μμΌλ‘ μ μ₯νλ€.- κ° μ€ν μ΄μ§λ§λ€ λμ ν μ¬μ©μλ μ΄μ μ€ν μ΄μ§μμ ν΄λ¦¬μ΄νμ§ λͺ»ν μ¬μ©μλ₯Ό λΉΌλ©΄ ꡬν μ μλ€.
HashMapμkeySetμListμ λ£μ ν,Listμ.sort((o1, o2) -> HashMap.get(o2).compareTo(HashMap.get(o1))λ©μλλ‘ κ°μ μ λ ¬ν μ μλ€.
κ²°λ‘ !
ν΄λΉ λ¬Έμ λ₯Ό νλ©΄μ κΈ°μ‘΄μ ν·κ°λ Έλ HashMapμ μ¬μ©λ²κ³Ό μ λ ¬ λ°©λ²μ λ€μ μ΅ν μ μμλ€.
Share article