λ°μν
Notice
Recent Posts
Recent Comments
Link
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- use-immer
- reading 'edgesOut'
- carouselButton
- ν μ€ν¬ ν
- Call Stack
- Styled Components
- μ΅λ¨κ±°λ¦¬μκ³ λ¦¬μ¦
- styled-components λ²μ λ¬Έμ
- styled-components extension
- js fetch
- styled-compoents
- java
- javascript λΉλκΈ°
- React 곡μλ¬Έμ
- Javascript
- λΈλμΉ μ΄λ¦ λ³κ²½ λͺ λ Ήμ΄
- git branch -m
- λ¨μΌλ§ν¬λ리μ€νΈ
- react
- styled components μ€μΉ μλ¨
- fetch()
- 1966 νλ¦°ν°ν
- likelion
- vscode extension
- react immer
- react-native-snap-carousel
- Code Splitting
- λ€νΈμν¬ ν΅μ μμ²
- reading 'useDebugValue'
- styled-components μ€μΉ μ€λ₯
Archives
- Today
- Total
Keep Going
λ°±μ€ 1744λ². μ λ¬ΆκΈ° λ³Έλ¬Έ
λ°μν
π‘λ¬Έμ λΆμ μμ½
<λ¬Έμ λΆμ>
- κΈΈμ΄κ° NμΈ μμ΄μ ν©μ ꡬνλ €κ³ νλ€. κ·Όλ° κ·Έ μ«μλ₯Ό λͺ¨λ λν΄μ ꡬνλκ² μλμμ !
- μμ΄μ λ μλ₯Ό λ¬ΆμΌλ €κ³ ν΄μ.
- μμΉμ μκ΄μμ΄ λ¬Άμ μ μμ΄μ
- μκΈ° μμ κ³Ό μκΈ° μμ μ λ¬Άμ μλ μμ΄μ
- μ΄λ€ μλ₯Ό λ¬Άκ² λλ©΄ μμ΄μ ν©μ ꡬν λ λ¬Άμ μλ μλ‘ κ³±ν λ€μμ λν΄μ§κ² λμ΄μ
- μμ΄μ λͺ¨λ μλ λ¨ νλ²λ§ λ¬Άκ±°λ, μλλ©΄ λ¬Άμ§ μμμΌ ν΄μ.
- μ λ¬Άμ΄λ λκ³ ,
- λ¬ΆμΌλ €λ©΄ 1λ²λ§ λ¬Άμ μ μκ³
- κ° μλ₯Ό μ μ ν λ¬Άμ΄μ κ·Έ μμ΄μ ν©μ΄ μ΅λκ° λκ² νλ νλ‘κ·Έλ¨μ μ§μΈμ
- μμ΄μ μλ μ«μλ -1000 ≤ ≤ 1000 μ΄λ€.
- μ¦, μμκ° μλ€λ κ² ! 0μ΄ μλ€λ κ² !
- κ²°κ³Ό κ°μ νμ 2^31λ³΄λ€ μλ€.
<μμ΄λμ΄>
- μ ν©μ΄ μ΅λκ° λμ€λ €κ³ ν©λλ€.
- ⇒ 그리λμ λμκ° λ©λλ€ ~ νμ μ΅κ³ λ₯Ό λ§λ€μ΄μΌ νλκΉμ ?
- μμ μ’ λ₯λ μμ, 0, μμμ΄λ€.
- μ μ΄λ»κ² νμ μ΅κ³ λ₯Ό λ§λ€κΉμ ?
- 1 μ΄κ³Ό μμ
- 1 μ΄κ³Ό μμλ₯Ό 보λ μ΄μ λ
1*3 = 3
<1+3 = 4
κ°μ κ²½μ° λλ¬Έμ΄λ€. 1μ κ³±νμ λ λ ν° ν©μ λ§λλλ° λμμ΄ λμ§ μκΈ° λλ¬Έμ 1λ§ λ°λ‘ λͺ¨μμ κ²°κ³Ό μμ΄μ λ£μ΄μ£Όλκ² ν° ν©μ λ§λλλ° λμμ΄ λλ€. βββββ (1μ μμ±) - μμλ κ°μ₯ ν°κ²λ€ 2κ°μ© λ¬Άμ΄μ κ³±νλ©΄ νμ μ΅κ³ κ° λλλ° λμμ΄ λκ³
- μμκ° 1κ° λ¨μμΌλ©΄ κ·Έλ₯ κ²°κ³Ό μμ΄μ λνλ©΄ λκ³
- 1 μ΄κ³Ό μμλ₯Ό 보λ μ΄μ λ
- μμ
- μμμΈ κ²λ€μ κ°μ₯ μμ 2κ°μ© λ¬Άμ΄μ κ³±νλ©΄ μμκ° λμ΄μ → νμ μ΅κ³ κ° λλλ° λμμ΄ λκ³
- νΉμ μμ νλκ° λ¨μκ³ 0μ΄ μλ€λ©΄
- κ·Έ λμ κ³±ν΄μ£Όλ κ²μ΄ μ’κ³
- μμ νλκ° λ¨μλλ° 0μ΄ μλ€λ©΄
- κ·Έλ₯ κ²°κ³Ό μμ΄μ λν΄μ€μΌ νκ³
- 0
- ν©μ λ§λλ κ²μ μν₯μ λ―ΈμΉμ§ μκΈ°μ κ΅³μ΄ κ²°κ³Ό μμ΄μ λ£μ΄μ€ νμ μκ³
- 1
- 1λ€μ λͺ¨λ κ²°κ³Ό μμ΄μ λ£μ΄μ£ΌκΈ°
- κ²°κ³Ό μμ΄μ sum ν κ²μ΄ μ λ΅ !
- 1 μ΄κ³Ό μμ
- ν΅μ¬μ μμ / 0 / 1 / μμ μ΄λ κ² λΆλ¦¬ν΄μ μ²λ¦¬ν΄μ£Όλ κ²
- μ λ€μμ μμ λ‘κ² λ½κΈ° μν΄ μμ, μμλ dequeλ‘ λ§λ λ€. 0κ³Ό 1μ μκ΄ μμ
- μμ΄μ μ«μλ₯Ό λ°μμ κ° λ°°μ΄μ λ£κΈ°
- if num<0: neg.append(num)
elif num==0: zero.append(num)
elif num>1: pos.append(num)
elif num==1: one.append(num)
- if num<0: neg.append(num)
- μμ
- while negμ κΈΈμ΄κ° 1λ³΄λ€ ν΄ λ κΉμ§
pop, pop → κ³±νκΈ° → new_arr.append(λ¬Άμ μ) - negκ° λ¨μ μλ€λ©΄(
- λ§μ½ if zeroλΌλ©΄
new_arr.append(λ¨μμλ λ§μ§λ§ νλλ₯Ό λ½μμ neg.pop() * zero.pop()) - elseλΌλ©΄
new_arr.append(neg.pop())
- λ§μ½ if zeroλΌλ©΄
- while negμ κΈΈμ΄κ° 1λ³΄λ€ ν΄ λ κΉμ§
- 1μ΄κ³Ό μμ
- while posμ κΈΈμ΄κ° 1λ³΄λ€ ν΄ λ κΉμ§
pop, pop → κ³±νκΈ° → new_arr.append(λ¬Άμ μ) - posκ° λ¨μ μλ€λ©΄ (1κ° λ¨μμλκ±°μ£ )
- new_arr.append(λ¨μμλ λ§μ§λ§ νλλ₯Ό λ½μμ λ°°μ΄.pop())
- while posμ κΈΈμ΄κ° 1λ³΄λ€ ν΄ λ κΉμ§
- 1
- while one: res_arr.append(one.pop())
- print(sum(res_arr))
1 ≤ N < 50
-1000 ≤ κ° μμ΄μ μ ≤ 1000
μκ° μ ν : 2μ΄
μ£μ§ μΌμ΄μ€
- λμ³€λ ν μ€νΈ μΌμ΄μ€
⇒ 1μ μμ±μ μκ°νκ² λλ€.1 + 1 = 2 2 1 1 ans = 2
-1 + 1 + 2 = 2 3 -1 1 2 ans = 2
μ μΆλ ₯
- μ λ ₯
4 -1 2 1 3
- μΆλ ₯
6 # ν©μ΄ μ΅λκ° λμ€κ² νμ λμ μμ΄μ ν© (νμ 2^31λ³΄λ€ μλ€, μμμΌ μλ μλ€.)
π‘μκ³ λ¦¬μ¦ μ€κ³ (μλ μ½λ)
- μ λ€μμ μμ λ‘κ² λ½κΈ° μν΄ μμ, μμλ dequeλ‘ λ§λ λ€. 0κ³Ό 1μ μκ΄ μμ
- μμ΄μ μ«μλ₯Ό λ°μμ κ° λ°°μ΄μ λ£κΈ°
- if num<0: neg.append(num)
elif num==0: zero.append(num)
elif num>1: pos.append(num)
elif num==1: one.append(num)
- if num<0: neg.append(num)
- μμ
- while negμ κΈΈμ΄κ° 1λ³΄λ€ ν΄ λ κΉμ§
pop, pop → κ³±νκΈ° → new_arr.append(λ¬Άμ μ) - negκ° λ¨μ μλ€λ©΄(
- λ§μ½ if zeroλΌλ©΄
new_arr.append(λ¨μμλ λ§μ§λ§ νλλ₯Ό λ½μμ neg.pop() * zero.pop()) - elseλΌλ©΄
new_arr.append(neg.pop())
- λ§μ½ if zeroλΌλ©΄
- while negμ κΈΈμ΄κ° 1λ³΄λ€ ν΄ λ κΉμ§
- 1μ΄κ³Ό μμ
- while posμ κΈΈμ΄κ° 1λ³΄λ€ ν΄ λ κΉμ§
pop, pop → κ³±νκΈ° → new_arr.append(λ¬Άμ μ) - posκ° λ¨μ μλ€λ©΄ (1κ° λ¨μμλκ±°μ£ )
- new_arr.append(λ¨μμλ λ§μ§λ§ νλλ₯Ό λ½μμ λ°°μ΄.pop())
- while posμ κΈΈμ΄κ° 1λ³΄λ€ ν΄ λ κΉμ§
- 1
- while one: res_arr.append(one.pop())
- print(sum(res_arr))
π‘μ½λ
34088 KB | 64 ms |
---|
import sys
from collections import deque
n = int(sys.stdin.readline().strip())
neg = deque()
pos = deque()
zero = []
one = []
res_arr = []
for _ in range(n): # O(n)
num = int(sys.stdin.readline().strip())
if num<0: neg.append(num)
elif num==0: zero.append(num)
elif num>1: pos.append(num)
elif num==1: one.append(num)
neg = deque(sorted(neg)) # O(nlogn)
while len(neg)>1: # O(n)
res_arr.append(neg.popleft()*neg.popleft())
if neg: # negκ° 1κ° λ¨μμμ
if zero: # 0μ΄ μλ€λ©΄, 0μ΄λ κ³±ν΄μ 무ν¨νμν€κΈ°
res_arr.append(neg.popleft()*zero.pop()) # neg.popleft()
else:
res_arr.append(neg.popleft())
pos = deque(sorted(pos, reverse=True)) # O(nlogn)
while len(pos)>1: # O(n)
res_arr.append(pos.popleft()*pos.popleft())
if pos:
res_arr.append(pos.popleft())
while one: # O(n)
res_arr.append(one.pop())
print(sum(res_arr)) # O(n)
π‘μκ° λ³΅μ‘λ
O(5n + 2nlogn) = O(nlogn)
⇒ $O(50log50) < 2*10^6$
π‘ νλ¦° μ΄μ
- 1μ λν μμ±μ κ³ λ €νμ§ μκ³ μμ / 0 / μμ μ λν΄μλ§ μκ°ν¨
3 -1 1 2 ans = 1μ΄ λμμ μλνλ©΄ 1μ μμ±μ κ³ λ €νμ§ μκ³ μμ λ²μμ ν¬ν¨ν΄μ 2*1 + -1 μ°μ°μ΄ λμκΈ° λλ¬Έμ !
π‘ νλ¦° λΆλΆ μμ or λ€λ₯Έ νμ΄
- 1μ λν ‘ν©, κ³±’ μμ±μ κ³ λ €ν΄μ 1μ λ°λ‘ λΆλ¦¬νμ¬ res_arrμ μ λΆ λνκΈ° !
elif num==1: one.append(num)
while one: # O(n)
res_arr.append(one.pop())
π‘ λλμ or κΈ°μ΅ν μ 보
- print(sum([])) = 0
- 1μ λ€λ₯Έ μμ(k)λ κ³±νμ λ k λ³ΈμΈμ΄ λκ² λ§λ€κΈ° λλ¬Έμ 무쑰건 1*k < 1+k μ΄λ€.
λ°μν
'Problem Solving' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°±μ€ 2531. νμ μ΄λ°₯ (0) | 2024.07.30 |
---|---|
[μκ³ λ¦¬μ¦] ν¬ ν¬μΈν° (0) | 2024.07.15 |
[μ΅λ¨κ±°λ¦¬] νλ‘μ΄λ μμ¬ μκ³ λ¦¬μ¦ (0) | 2024.06.17 |
[μ΅λ¨κ±°λ¦¬] λ²¨λ§ ν¬λ (3) | 2024.06.10 |
[νλ‘κ·Έλλ¨Έμ€] μ μ μΌκ°ν (0) | 2024.05.27 |