ν°μΌλͺ¬ (with.Java)
βν°μΌλͺ¬ (with.Java)β λ¬Έμ μ λνμ¬ μμλ³Έ κΈμ λλ€.
μ½λ© ν μ€νΈ λ¬Έμ λ₯Ό νλ©°, νμλ λ¬Έμ μ λν νκ³ μ λ€λ₯Έ νμ΄ λ°©λ²μ μμ보며, μμκ°κ³ μ ν©λλ€.
λ¬Έμ μ λν΄ λ¨Όμ μμλ³΄κ² μ΅λλ€.
λ¬Έμ
λΉμ μ ν°μΌλͺ¬μ μ‘κΈ° μν μ€λ μ¬ν λμ, ν λ°μ¬λμ μ°κ΅¬μ€μ λμ°©νμ΅λλ€.
ν λ°μ¬λμ λΉμ μκ² μμ μ μ°κ΅¬μ€μ μλ μ΄ N λ§λ¦¬μ ν°μΌλͺ¬ μ€μμ N/2λ§λ¦¬λ₯Ό κ°μ Έκ°λ μ’λ€κ³ νμ΅λλ€.
ν λ°μ¬λ μ°κ΅¬μ€μ ν°μΌλͺ¬μ μ’ λ₯μ λ°λΌ λ²νΈλ₯Ό λΆμ¬ ꡬλΆν©λλ€. λ°λΌμ κ°μ μ’ λ₯μ ν°μΌλͺ¬μ κ°μ λ²νΈλ₯Ό κ°μ§κ³ μμ΅λλ€.
μλ₯Ό λ€μ΄ μ°κ΅¬μ€μ μ΄ 4λ§λ¦¬μ ν°μΌλͺ¬μ΄ μκ³ , κ° ν°μΌλͺ¬μ μ’ λ₯ λ²νΈκ° [3λ², 1λ², 2λ², 3λ²]μ΄λΌλ©΄ μ΄λ 3λ² ν°μΌλͺ¬ λ λ§λ¦¬, 1λ² ν°μΌλͺ¬ ν λ§λ¦¬, 2λ² ν°μΌλͺ¬ ν λ§λ¦¬κ° μμμ λνλ λλ€.
μ΄λ, 4λ§λ¦¬μ ν°μΌλͺ¬ μ€ 2λ§λ¦¬λ₯Ό κ³ λ₯΄λ λ°©λ²μ λ€μκ³Ό κ°μ΄ 6κ°μ§κ° μμ΅λλ€.
- 첫 λ²μ§Έ(3λ²), λ λ²μ§Έ(1λ²) ν°μΌλͺ¬μ μ ν
- 첫 λ²μ§Έ(3λ²), μΈ λ²μ§Έ(2λ²) ν°μΌλͺ¬μ μ ν
- 첫 λ²μ§Έ(3λ²), λ€ λ²μ§Έ(3λ²) ν°μΌλͺ¬μ μ ν
- λ λ²μ§Έ(1λ²), μΈ λ²μ§Έ(2λ²) ν°μΌλͺ¬μ μ ν
- λ λ²μ§Έ(1λ²), λ€ λ²μ§Έ(3λ²) ν°μΌλͺ¬μ μ ν
- μΈ λ²μ§Έ(2λ²), λ€ λ²μ§Έ(3λ²) ν°μΌλͺ¬μ μ ν
μ΄λ, 첫 λ²μ§Έ(3λ²) ν°μΌλͺ¬κ³Ό λ€ λ²μ§Έ(3λ²) ν°μΌλͺ¬μ μ ννλ λ°©λ²μ ν μ’ λ₯(3λ² ν°μΌλͺ¬ λ λ§λ¦¬)μ ν°μΌλͺ¬λ§ κ°μ§ μ μμ§λ§, λ€λ₯Έ λ°©λ²λ€μ λͺ¨λ λ μ’ λ₯μ ν°μΌλͺ¬μ κ°μ§ μ μμ΅λλ€.
λ°λΌμ μ μμμμ κ°μ§ μ μλ ν°μΌλͺ¬ μ’ λ₯ μμ μ΅λκ°μ 2κ° λ©λλ€.
λΉμ μ μ΅λν λ€μν μ’ λ₯μ ν°μΌλͺ¬μ κ°μ§κΈΈ μνκΈ° λλ¬Έμ, μ΅λν λ§μ μ’ λ₯μ ν°μΌλͺ¬μ ν¬ν¨ν΄μ N/2λ§λ¦¬λ₯Ό μ ννλ € ν©λλ€.
Nλ§λ¦¬ ν°μΌλͺ¬μ μ’ λ₯ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ numsκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, N/2λ§λ¦¬μ ν°μΌλͺ¬μ μ ννλ λ°©λ² μ€, κ°μ₯ λ§μ μ’ λ₯μ ν°μΌλͺ¬μ μ ννλ λ°©λ²μ μ°Ύμ, κ·Έλμ ν°μΌλͺ¬ μ’ λ₯ λ²νΈμ κ°μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
- numsλ ν°μΌλͺ¬μ μ’ λ₯ λ²νΈκ° λ΄κΈ΄ 1μ°¨μ λ°°μ΄μ λλ€.
- numsμ κΈΈμ΄(N)λ 1 μ΄μ 10,000 μ΄νμ μμ°μμ΄λ©°, νμ μ§μλ‘ μ£Όμ΄μ§λλ€.
- ν°μΌλͺ¬μ μ’ λ₯ λ²νΈλ 1 μ΄μ 200,000 μ΄νμ μμ°μλ‘ λνλ λλ€.
- κ°μ₯ λ§μ μ’ λ₯μ ν°μΌλͺ¬μ μ ννλ λ°©λ²μ΄ μ¬λ¬ κ°μ§μΈ κ²½μ°μλ, μ νν μ μλ ν°μΌλͺ¬ μ’ λ₯ κ°μμ μ΅λκ° νλλ§ return νλ©΄ λ©λλ€.
μ μΆλ ₯ μμ
nums | result |
---|---|
[3, 1, 2, 3] | 2 |
[3, 3, 3, 2, 2, 4] | 3 |
[3, 3, 3, 2, 2, 2] | 2 |
λ¬Έμ μ λν λμ νμ΄
import java.util.Arrays;
class Solution {
public int solution(int[] nums) {
int answer = 0;
int choiceNum = nums.length / 2;
nums = Arrays.stream(nums).distinct().toArray();
if(nums.length >= choiceNum){
return choiceNum;
}else{
return nums.length;
}
}
}
νμ΄ λ¦¬λ·°
solution λ©μλλ μ μ λ°°μ΄ numsλ₯Ό μ λ ₯μΌλ‘ λ°μ΅λλ€.
choiceNum λ³μλ₯Ό μ μΈνκ³ , λ°°μ΄μ κΈΈμ΄μ μ λ°μ μ μ₯ν©λλ€. μ΄λ μ νν μ μλ μ«μμ μ΅λ κ°μλ₯Ό λνλ λλ€.
Arrays.stream(nums).distinct().toArray()λ₯Ό μ¬μ©νμ¬ μ€λ³΅λ μ«μλ₯Ό μ κ±°ν ν, λ°°μ΄λ‘ λ³ννμ¬ numsμ μ μ₯ν©λλ€.
if λ¬Έμ μ¬μ©νμ¬ μ€λ³΅μ΄ μ κ±°λ λ°°μ΄μ κΈΈμ΄κ° choiceNumλ³΄λ€ ν¬κ±°λ κ°μΌλ©΄ choiceNumμ λ°νν©λλ€. μ΄λ μ€λ³΅μ΄ μ κ±°λ λ°°μ΄μ κΈΈμ΄κ° μ νν μ μλ μ΅λ μ«μμ κ°μλ³΄λ€ ν¬λ€λ κ²μ μλ―Έν©λλ€.
κ·Έλ μ§ μμ κ²½μ°μλ μ€λ³΅μ΄ μ κ±°λ λ°°μ΄μ κΈΈμ΄λ₯Ό λ°νν©λλ€.
μ΅μ’ μ μΌλ‘ μ νλ μ«μμ κ°μλ₯Ό λ°νν©λλ€.
μ΄ μ½λλ λ°°μ΄μμ μ€λ³΅λ μ«μλ₯Ό μ κ±°νκ³ , μ νν μ μλ μ«μμ μ΅λ κ°μλ₯Ό κΈ°μ€μΌλ‘ μλ‘ λ€λ₯Έ μ«μμ κ°μλ₯Ό λ°ννλ κ°λ¨ν λ°©λ²μ μ¬μ©ν©λλ€.