| μΌ | μ | ν | μ | λͺ© | κΈ | ν | 
|---|---|---|---|---|---|---|
| 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 | 
- μκ³ λ¦¬μ¦
- μλ°
- react-redux
- redux-saga
- redux-toolkit
- createSlice
- μ½λ©ν μ€νΈν©κ²©μλκΈ°
- java
- νν΄99
- ν μ½ν μ½
- useDispatch
- react-router
- 리μ‘νΈ
- maeil-mail
- react
- λ§€μΌλ©μΌ
- νν΄νλ¬μ€
- JavaScript
- programmers
- Algorithm
- C++
- json-server
- νλ‘κ·Έλλ¨Έμ€
- μ΄μ½ν 
- Python
- Get
- sw expert academy
- axios
- redux
- SW
- Today
- Total
Binary Journey
[ν μ½ν μ½1.5 1-05] λ²μ€ λ³Έλ¬Έ
π‘ν μ½ν μ½ μμ¦ 1.5 1ν λͺ¨μ off-site λ¬Έμ  νμ΄μ λλ€. (2025.01.12)
λ¬Έμ 
μΆμ²: νλ‘κ·Έλλ¨Έμ€ - PCCE κΈ°μΆλ¬Έμ  07. λ²μ€
λ΄μ©
μμ§μ΄λ μ½μμ₯μμ κ°κΈ° μν΄ λ²μ€λ₯Ό νλ €κ³  ν©λλ€. λ²μ€μλ μ’μμ΄ μ΄ seatκ°λ§νΌ μμ΅λλ€. μμ§μ΄λ λ²μ€ μ’μμ μμμ κ° μ μμμ§ κΆκΈν΄ν©λλ€. κΈ°μ μμ μΆλ°ν λ²μ€κ° μμ§μ΄κ° κΈ°λ€λ¦¬λ μ κ±°μ₯μ λμ°©νκΈ° μ μ λ°©λ¬Ένλ κ° μ κ±°μ₯μμ μΉ/νμ°¨ν μΉκ° μ λ³΄κ° μ£Όμ΄μ§ λ, μμ§μ΄κ° λ²μ€μ ν μκ° λΉ μ’μμ λͺ κ°μΈμ§ ꡬν΄μ£ΌμΈμ. μμ§μ΄κ° κΈ°λ€λ¦¬λ μ κ±°μ₯μμλ μμ§μ΄κ° μ μΌ λ¨Όμ  λ²μ€μ νμΉνλ©°, μ΄μ  μ κ±°μ₯μμ λ²μ€μ νμΉν μΉκ°λ€μ λ¨λ μ’μμ΄ μλ€λ©΄ νμ μλλ€κ³  κ°μ ν©λλ€. λ, κΈ°μ μμ μΆλ°νλ λ²μ€μλ μΉκ°μ΄ 0λͺ
 νκ³  μμ΅λλ€.
μλ₯Ό λ€μ΄ λ€μμ μ’μμ΄ 5κ°μΈ λ²μ€μ κ° μ κ±°μ₯μμ μΉ/νμ°¨ν μΉκ° μ 보λ₯Ό λνλ λλ€. μμ§μ΄λ 4λ² μ κ±°μ₯μμ κΈ°λ€λ¦¬κ³ μμΌλ©°, "On"μ μΉμ°¨ν μΉκ°, "Off"λ νμ°¨ν μΉκ°μ μλ―Έν©λλ€.
- 1λ² μ κ±°μ₯ : ["On", "On", "On"] (3λͺ
 μΉμ°¨, 0λͺ
 νμ°¨)
- 2λ² μ κ±°μ₯ : ["Off", "On", "-"] (1λͺ
 μΉμ°¨, 1λͺ
 νμ°¨)
- 3λ² μ κ±°μ₯ : ["Off", "-", "-"]  (0λͺ
 μΉμ°¨, 1λͺ
 νμ°¨)
μμ κ°μ κ²½μ°, 1λ² μ κ±°μ₯μμ 3λͺ μ΄ μΉμ°¨νκ³ , 2λ² μ κ±°μ₯μμ 1λͺ μΉμ°¨ 1λͺ νμ°¨, 3λ² μ κ±°μ₯μμ 1λͺ μ΄ νμ°¨νμΌλ―λ‘ 4λ² μ κ±°μ₯μ λμ°©ν λ²μ€μλ 2λͺ μ΄ νκ³ μμ΅λλ€. 4λ² μ κ±°μ₯μμλ μμ§μ΄κ° κ°μ₯ λ¨Όμ  νμΉνλ―λ‘, λ¨μμλ μ’μ μλ 3κ°μ λλ€.
μ£Όμ΄μ§ solutionν¨μλ λ²μ€μ μ’μ κ°μ seat, κΈ°μ μμ μΆλ°ν λ²μ€κ° μμλλ‘ λ°©λ¬Έν μ κ±°μ₯μμ μΉκ°μ΄ μΉ/νμ°¨ν μ λ³΄λ₯Ό λ΄μ 2μ°¨μ λ¬Έμμ΄ λ¦¬μ€νΈ passengersκ° μ£Όμ΄μ§ λ, λ²μ€μ λ¨μμλ μ’μμ κ°μλ₯Ό return νλ ν¨μμ
λλ€. solution ν¨μκ° μ¬λ°λ₯΄κ² μλνλλ‘ λΉμΉΈμ μ±μ solutionν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
- javaλ₯Ό μμνλ κ²½μ° λ¦¬μ€νΈλ λ°°μ΄, ν¨μλ λ©μλμ λμΌν μλ―Έμ΄λ νμ΄μ μ°Έκ³ ν΄μ£ΌμΈμ.
- ex) solution ν¨μκ° μ¬λ°λ₯΄κ² μλνλλ‘ ν μ€μ μμ ν΄ μ£ΌμΈμ. => solution λ©μλκ° μ¬λ°λ₯΄κ² μλνλλ‘ ν μ€μ μμ ν΄ μ£ΌμΈμ.
 
μ μ½ μ‘°κ±΄
- 1 ≤ seat≤ 30
- 1 ≤ passengersμ κΈΈμ΄ ≤ 10
- 1 ≤ passengers[i]μ κΈΈμ΄ ≤ 20- passengers[0]μ 1λ² μ κ±°μ₯,- passengers[1]μ 2λ² μ κ±°μ₯, …- passengers[i]λ i + 1λ² μ κ±°μ₯μ μ 보μ λλ€.
- passengersμ κΈΈμ΄κ° nμ΄λΌλ©΄, μμ§μ΄λ n + 1λ² μ κ±°μ₯μμ κΈ°λ€λ¦¬κ³ μμ΅λλ€.
 
- passengers[i]μ κΈΈμ΄λ λͺ¨λ λμΌν©λλ€.
- passengers[i]μ μμλ "On", "Off" λλ "-"μ λλ€.- "-"λ λ°°μ΄μ κ°λ‘(μ΄) κΈΈμ΄λ₯Ό λ§μΆκΈ° μν μμλ‘, μλ¬΄λ° μλ―Έλ μμ΅λλ€.
- "-"κ° "On", "Off" μ¬μ΄μ μλ κ²½μ°λ μμ΅λλ€.
 
κΈ°λ‘νκΈ°
π‘ μ΄λκΉμ§ μκ°ν΄λ΄€λμ§ λ¨κ³μ μΌλ‘ κΈ°λ‘ν΄λ΄ λλ€.
μ΄λ€ μκ³ λ¦¬μ¦μ μ μ©νλ € νλμ?
μ€νμ μ¬μ©νκ³ μΆλ€. (λ§λ¬Όμ€νμ€ γ γ ) κ·Έλ¬λ λ¬Έμ λ μ«μ μ°μ°μΌλ‘ λ¨Όμ  νμ΄λμ΄ μλ€.
μ μ© κ·Όκ±°λ 무μμΈκ°μ?
μμ μκ΄μμ΄ λ²μ€ μΉνμ°¨ μΈμμ λ°λΌ λ¨μ λ²μ€ μ’μμ ꡬνλ©΄ λλ―λ‘ μ€ν μ¬μ©ν΄λ λ  κ² κ°μλ€.
νμ§λ§ μ«μ μ°μ°μΌλ‘ λ¨Όμ  νμ΄λμ΄ μμΌλ λ¬Έμ μ λ§μΆ° νμ΄ν΄λ³΄κ³  μ€νμΌλ‘λ κ°λ₯νλ©΄ μ€νμΌλ‘ λ³νλ ν΄λ³΄κ² λ€.
νμ΄
νμ΄ μκ°
| μμ μκ° | μ’ λ£ μκ° | μ΄ μμ μκ° | 
|---|---|---|
| 12:53 | 13:06 | 13λΆ | 
λ¬Έμ  λΆμ
μ λ ₯κ° λΆμ
π‘ μ λ ₯κ°μ λΆμνλ©΄ λ¬Έμ μμ μꡬνλ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λλ₯Ό κ°μ μ μΌλ‘ νμ ν μ μμ΅λλ€.
| seat | passengers | result | 
|---|---|---|
| 5 | [["On", "On", "On"], ["Off", "On", "-"], ["Off", "-", "-"]] | 3 | 
| 10 | [["On", "On", "On", "On", "On", "On", "On", "On", "-", "-"], ["On", "On", "Off", "Off", "Off", "On", "On", "-", "-", "-"], ["On", "On", "On", "Off", "On", "On", "On", "Off", "Off", "Off"], ["On", "On", "Off", "-", "-", "-", "-", "-", "-", "-"]] | 0 | 
μ μΆλ ₯ μ #1
- μ§λ¬Έκ³Ό λμΌν©λλ€
μ μΆλ ₯ μ #2
μλμ κ°μ΄ μΉκ°μ΄ νκ³ λ΄λ Έκ³ λ§μ§λ§μΌλ‘ 12λͺ μ΄ λ²μ€μ νκ³ μμΌλ―λ‘ λ¨μ μ’μμ 0κ°μ λλ€.
- 1λ² μ κ±°μ₯ : ["On", "On", "On", "On", "On", "On", "On", "On", "-", "-"] (8λͺ
 μΉμ°¨, 0λͺ
 νμ°¨)
- 2λ² μ κ±°μ₯ : ["On", "On", "Off", "Off", "Off", "On", "On", "-", "-", "-"] (4λͺ
 μΉμ°¨, 3λͺ
 νμ°¨)
- 3λ² μ κ±°μ₯ : ["On", "On", "On", "Off", "On", "On", "On", "Off", "Off", "Off"] (6λͺ
 μΉμ°¨, 4λͺ
 νμ°¨)
- 4λ² μ κ±°μ₯ : ["On", "On", "Off", "-", "-", "-", "-", "-", "-", "-"] (2λͺ
 μΉμ°¨, 1λͺ
 νμ°¨)
μμ¬ μ½λ μμ±
π‘ μμ¬ μ½λλ λμ μ€μ¬μΌλ‘ μμ±νλ κ²μ΄ μ€μν©λλ€.
π‘ μμ¬ μ½λλ λ¬Έμ  ν΄κ²° μμλ‘ μμ±ν©λλ€.
π‘ μμ¬ μ½λλ₯Ό μΆ©λΆν ν μ€νΈν΄λ΄ λλ€.
(κΈ°μ‘΄ μ½λλ μ΄λ κ² κ΅¬νλμ΄ μμλ€.)
class Solution {
    public int solution(int seat, String[][] passengers) {
        int num_passenger = 0;
        for(int i=0; i<passengers.length; i++){
            num_passenger += func;
            num_passenger -= func;
        }
        int answer = func;
        return answer;
    }
    public int func1(int num){
        if(0 > num){
            return 0;
        }
        else{
            return num;
        }
    }
    public int func2(int num){
        if(num > 0){
            return 0;
        }
        else{
            return num;
        }
    }
    public int func3(String[] station){
        int num = 0;
        for(int i=0; i<station.length; i++){
            if(station[i].equals("Off")){
                num += 1;
            }
        }
        return num;
    }
    public int func4(String[] station){
        int num = 0;
        for(int i=0; i<station.length; i++){
            if(station[i].equals("On")){
                num += 1;
            }
        }
        return num;
    }
}
ꡬν
class Solution {
    public int solution(int seat, String[][] passengers) {
        int num_passenger = 0;
        for(int i=0; i<passengers.length; i++){
            num_passenger += func4(passengers[i]);
            num_passenger -= func3(passengers[i]);
        }
        int answer = func1(seat - num_passenger);
        return answer;
    }
    public int func1(int num){
        if(0 > num){
            return 0;
        }
        else{
            return num;
        }
    }
    public int func2(int num){
        if(num > 0){
            return 0;
        }
        else{
            return num;
        }
    }
    public int func3(String[] station){
        int num = 0;
        for(int i=0; i<station.length; i++){
            if(station[i].equals("Off")){
                num += 1;
            }
        }
        return num;
    }
    public int func4(String[] station){
        int num = 0;
        for(int i=0; i<station.length; i++){
            if(station[i].equals("On")){
                num += 1;
            }
        }
        return num;
    }
}public static int solution(int seat, String[][] passengers) {  
    Stack<String> stack = new Stack<>();  
    for (String[] passenger : passengers) {  
        for (String p : passenger) {  
            if (p.equals("On")) {  
                stack.push(p);  
            } else if (p.equals("Off") && !stack.isEmpty()) {  
                stack.pop();  
            }  
        }  
    }  
    return Math.max(0, seat - stack.size());  
}
볡기νκΈ°
λ΅μκ³Ό λμ νμ΄λ₯Ό λΉκ΅ν΄λ³΄μΈμ
- κ·Όλ° λν΄λ μκ°λ³΅μ‘λλ O(N^2)λΌ λ©λͺ¨λ¦¬ ν¨μ¨ μκ°νλ©΄ μ«μ μ°μ° λ°©μμΌλ‘ νλ κ² λμμ§λ..
'Algorithm > ν μ½ν μ½1.5(2025)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [ν μ½ν μ½1.5 1-07] μ§ν μ κΈ° (0) | 2025.01.12 | 
|---|---|
| [ν μ½ν μ½1.5 1-06] λλ€μ κ·μΉ (0) | 2025.01.12 | 
| [ν μ½ν μ½1.5 1-04] μ λλκΈ° (0) | 2025.01.12 | 
| [ν μ½ν μ½1.5 1-03] κ°λ ν©μΉκΈ° (0) | 2025.01.12 | 
| [ν μ½ν μ½1.5 1-01] λμμ μ¬μκΈ° (0) | 2025.01.12 |