π€λ¬Έμ ν΄κ²°
-
Lv3
νμ μ΄ μ΄μλ¨μ μ μλ 쑰건:
- λ΄ νμ κΈ°μ€ μΌμͺ½ νμ ν¬κΈ°κ° ν΄ λ
- λ΄ νμ κΈ°μ€ μ€λ₯Έμͺ½ νμ ν¬κΈ°κ° ν΄ λ
- λ§μ½ μΌμͺ½κ³Ό μ€λ₯Έμͺ½ λλ€ ν¬κΈ°κ° μμΌλ©΄ νμ μ μ£½λλ€
μ΄ λ¬Έμ μμ ν΅μ¬μ νμ μ ν¬κΈ°κ° κ°μ₯ μμ λ μλ€μ νλμ© λ½μμ£Όλ©΄ λλ κ²!
κ°μ κΈ°μ€μΌλ‘ μ λ ¬μ ν΄μ£Όλ©΄
- ν¬κΈ°κ° κ°μ₯ μμ νμ (5)μ 무쑰건 μ΄μλ¨λλ€. - (λͺ¨λ λ€ ν°νΈλ¦΄ μ μλ€)
- ν¬κΈ°κ° λλ²μ§Έλ‘ μμ νμ (6)λ 무쑰건 μ΄μλ¨λλ€. - (μμ λ³΄λ€ μμ νμ (5)μ ν°νΈλ¦΄ μ°¬μ€κ° 1λ² μκΈ° λλ¬Έ)
- ν¬κΈ°κ° μΈλ²μ§Έλ‘ μμ νμ (7) λΆν°λ μΈλ±μ€μ μν©μ λ°λΌ κ²°μ λλ€.
λ§μ½ 7μ΄ μμ λ νμ μ¬μ΄μ μμ κ²½μ° μμ μ μμͺ½μ΄ λͺ¨λ μκΈ° λλ¬Έμ νμ μ μ£½λλ€.
νμ§λ§ λ νμ μ¬μ΄κ° μλλΌλ©΄ ( 5 < 6 < 7 )
7 νμ μ μ€λ₯Έμͺ½μ λͺ¨λ 7 νμ λ³΄λ€ ν¬κΈ°κ° ν¬κΈ° λλ¬Έμ λ€ ν°νΈλ¦΄ μ μλ€.
7 νμ μ μΌμͺ½μ 5 νμ μ΄ λ€λ₯Έ λͺ¨λ νμ μ ν°νΈλ¦΄ μ μλ€.
κ²°κ³Όμ μΌλ‘ 7 νμ κ³Ό 5 νμ μ΄ λ¨κ² λλ©΄ μ°¬μ€λ₯Ό μ¬μ©ν΄ 5 νμ μ ν°νΈλ¦°λ€.
!! μμ½νμλ©΄ μμ λ νμ μ¬μ΄μ λ€μ΄κ°μ§ μλλ€λ©΄ νμ μ μ΄μλ¨κ² λλ κ²!
π¨ λμ κ²½μ° sortλ₯Ό λ°λ‘ ν΄μ£ΌκΈ°λ³΄λ€ μ°μ μμ νλ₯Ό μ΄μ©νλ€(νν)
π»μμ€ μ½λ
import heapq
def solution(a):
if len(a) < 3:
return len(a)
answer = 2
pq = []
for i in range(len(a)):
heapq.heappush(pq, (a[i], i))
left = heapq.heappop(pq)[1]
right = heapq.heappop(pq)[1]
if left > right:
left, right = right, left
while pq:
c = heapq.heappop(pq)[1]
if c < left:
answer += 1
left = c
elif c > right:
answer += 1
right = c
return answer
πλ¬Έμ νμΈ
μΆμ²: νλ‘κ·Έλλ¨Έμ€
λ§ν¬: https://programmers.co.kr/learn/courses/30/lessons/68646?language=python3
λ¬Έμ μ€λͺ
μΌλ ¬λ‘ λμ΄λ nκ°μ νμ μ΄ μμ΅λλ€. λͺ¨λ νμ μλ μλ‘ λ€λ₯Έ μ«μκ° μ¨μ Έ μμ΅λλ€. λΉμ μ λ€μ κ³Όμ μ λ°λ³΅νλ©΄μ νμ λ€μ λ¨ 1κ°λ§ λ¨μ λκΉμ§ κ³μ ν°νΈλ¦¬λ €κ³ ν©λλ€.
- μμμ μΈμ ν λ νμ μ κ³ λ₯Έ λ€, λ νμ μ€ νλλ₯Ό ν°νΈλ¦½λλ€.
- ν°μ§ νμ μΌλ‘ μΈν΄ νμ λ€ μ¬μ΄μ λΉ κ³΅κ°μ΄ μκ²Όλ€λ©΄, λΉ κ³΅κ°μ΄ μλλ‘ νμ λ€μ μ€μμΌλ‘ λ°μ°©μν΅λλ€.
μ¬κΈ°μ μ‘°κ±΄μ΄ μμ΅λλ€. μΈμ ν λ νμ μ€μμ λ²νΈκ° λ μμ νμ μ ν°νΈλ¦¬λ νμλ μ΅λ 1λ²λ§ ν μ μμ΅λλ€. μ¦, μ΄λ€ μμ μμ μΈμ ν λ νμ μ€ λ²νΈκ° λ μμ νμ μ ν°νΈλ Έλ€λ©΄, κ·Έ μ΄νμλ μΈμ ν λ νμ μ κ³ λ₯Έ λ€ λ²νΈκ° λ ν° νμ λ§μ ν°νΈλ¦΄ μ μμ΅λλ€.
λΉμ μ μ΄λ€ νμ μ΄ μ΅νκΉμ§ λ¨μ μ μλμ§ μμλ³΄κ³ μΆμ΅λλ€. μμ μμ λ 쑰건λλ‘ νμ μ ν°νΈλ¦¬λ€ 보면, μ΄λ€ νμ μ μ΅νκΉμ§ λ¨μ μλ μμ§λ§, μ΄λ€ νμ μ λ¬΄μ¨ μλ₯Ό μ°λλΌλ λ§μ§λ§κΉμ§ λ¨κΈ°λ κ²μ΄ λΆκ°λ₯ν μλ μμ΅λλ€.
μΌλ ¬λ‘ λμ΄λ νμ λ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ aκ° μ£Όμ΄μ§λλ€. μμ μμ λ κ·μΉλλ‘ νμ λ€μ 1κ°λ§ λ¨μ λκΉμ§ ν°νΈλ Έμ λ μ΅νκΉμ§ λ¨κΈ°λ κ²μ΄ κ°λ₯ν νμ λ€μ κ°μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ ν μ¬ν
- aμ κΈΈμ΄λ 1 μ΄μ 1,000,000 μ΄νμ
λλ€.
- a[i]λ i+1 λ²μ§Έ νμ μ μ¨μ§ μ«μλ₯Ό μλ―Έν©λλ€.
- aμ λͺ¨λ μλ -1,000,000,000 μ΄μ 1,000,000,000 μ΄νμΈ μ μμ λλ€.
- aμ λͺ¨λ μλ μλ‘ λ€λ¦ λλ€.
μ μΆλ ₯ μ
a | result |
[9,-1,-5] | 3 |
[-16,27,65,-2,58,-92,-71,-68,-61,-33] | 6 |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- 첫 λ²μ§Έ νμ (9κ° μ¨μ§ νμ )μ μ΅νκΉμ§ λ¨κΈ°λ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
- [9, -1, -5] μμ -1, -5κ° μ¨μ§ νμ μ κ³ λ₯Έ λ€, -1μ΄ μ¨μ§ νμ (λ²νΈκ° λ ν° κ²)μ ν°νΈλ¦½λλ€.
- [9, -5] μμ 9, -5κ° μ¨μ§ νμ μ κ³ λ₯Έ λ€, -5κ° μ¨μ§ νμ (λ²νΈκ° λ μμ κ²)μ ν°νΈλ¦½λλ€.
- λ λ²μ§Έ νμ (-1μ΄ μ¨μ§ νμ )μ μ΅νκΉμ§ λ¨κΈ°λ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
- [9, -1, -5] μμ 9, -1μ΄ μ¨μ§ νμ μ κ³ λ₯Έ λ€, 9κ° μ¨μ§ νμ (λ²νΈκ° λ ν° κ²)μ ν°νΈλ¦½λλ€.
- [-1, -5] μμ -1, -5κ° μ¨μ§ νμ μ κ³ λ₯Έ λ€, -5κ° μ¨μ§ νμ (λ²νΈκ° λ μμ κ²)μ ν°νΈλ¦½λλ€.
- μΈ λ²μ§Έ νμ (-5κ° μ¨μ§ νμ )μ μ΅νκΉμ§ λ¨κΈ°λ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
- [9, -1, -5] μμ 9, -1μ΄ μ¨μ§ νμ μ κ³ λ₯Έ λ€, 9κ° μ¨μ§ νμ (λ²νΈκ° λ ν° κ²)μ ν°νΈλ¦½λλ€.
- [-1, -5] μμ -1, -5κ° μ¨μ§ νμ μ κ³ λ₯Έ λ€, -1μ΄ μ¨μ§ νμ (λ²νΈκ° λ ν° κ²)μ ν°νΈλ¦½λλ€.
- 3κ°μ νμ μ΄ μ΅νκΉμ§ λ¨μ μ μμΌλ―λ‘, 3μ return ν΄μΌ ν©λλ€.
μ μΆλ ₯ μ #2
- μ΅νκΉμ§ λ¨μ μ μλ νμ μ -16, -92, -71, -68, -61, -33μ΄ μ¨μ§ νμ μΌλ‘ λͺ¨λ 6κ°μ λλ€.
'Algorithm Problem > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[python] λ°±μ€ - 1929. μμ ꡬνκΈ° (0) | 2020.09.28 |
---|---|
[python] λ°±μ€ - 1011. Fly me to the Alpha Centauri (0) | 2020.09.26 |
[python] λ°±μ€ - 5014. μ€ννΈλ§ν¬ (0) | 2020.09.24 |
[python] λ°±μ€ - 3055. νμΆ (0) | 2020.09.23 |
[python] λ°±μ€ - 1916. μ΅μλΉμ© ꡬνκΈ° (0) | 2020.09.23 |