memoization
-
- [React.js] useCallback νuseCallback ν λ€μ΄κ°λ©°λ¦¬μ‘νΈ(React.js)μμ μ¬μ©λλ @useCallback@ ν μ λν΄ μ 리ν΄λ³Έλ€. useCallback ν κ°λ μ»΄ν¬λνΈμ μ±λ₯ μ΅μ ν(Optimization)λ₯Ό μν΄ μμ£Ό μ¬μ©λλ ν ν¨μλ₯Ό λ©λͺ¨μ΄μ μ΄μ (Memoization)νμ¬ μ»΄ν¬λνΈκ° 리λ λλ§λ λλ§λ€ ν¨μκ° μ¬μμ±λλ κ²μ λ°©μ§νλ€. μ¬μ© λ°©λ²@useCallback(() => {}, [])@μ κ°μ΄ μ¬μ©νλ€.첫 λ²μ§Έ μΈμλ‘ ν¨μλ₯Ό λ°κ³ , λ λ²μ§Έ μΈμλ‘ μμ‘΄μ± λ°°μ΄(Dependencies Array)μ λ°λλ€.const memoizedCallback = useCallback(() => { doSomething(a, b);}, [a, b]); ⇒ 리μ‘νΈλ μ»΄ν¬λνΈκ° 리λ λλ§λ λλ§λ€ ν΄λΉ ν¨μλ₯Ό λ€μ μμ±νμ§ μκ³ ,..
2024.09.20 -
- [React.js] React.memo()React.memo()λ€μ΄κ°λ©°λ¦¬μ‘νΈ(React.js)μμ μ 곡νλ κ³ μ°¨ ν¨μ(Higher-Order Component)μΈ @React.memo()@μ λν΄ μ 리ν΄λ³Έλ€. React.memo()κ°λ 리μ‘νΈμμ μ 곡νλ κ³ μ°¨ ν¨μ(Higher-Order Component)ν¨μν μ»΄ν¬λνΈμ λΆνμν μ¬λ λλ§μ λ°©μ§νλ μν μ νλ€.μ λ¬λ @props@κ° λ³κ²½λμ§ μλ ν ν΄λΉ μ»΄ν¬λνΈλ λ€μ λ λλ§λμ§ μλλ‘ μ΅μ ν(Optimization)ν μ μλ€.@React.memo()@λ ν¨μν μ»΄ν¬λνΈλ₯Ό μΈμλ‘ λ°μ, κ·Έμ λμΌν λμμ νλ μλ‘μ΄ μ»΄ν¬λνΈλ₯Ό λ°ννμ§λ§, μΆκ°μ μΌλ‘ @props@κ° λ³κ²½λμλμ§ νμΈνλ μ΅μ ν μμ μ΄ μΆκ°λλ€.@props@κ° λ³κ²½λμ§ μμ κ²½μ°, λ©λͺ¨μ΄μ μ΄μ λ μ»΄ν¬λνΈλ μ΄μ λ λλ§μμ..
2024.09.18 -
- [React.js] memo() μ¬μ©ν λ μ£Όμν μ memo() μ¬μ©ν λ μ£Όμν μ λ€μ΄κ°λ©°λ¦¬μ‘νΈ(React.js)μ @memo()@λ₯Ό μ¬μ©ν λ μ£Όμν μ μ μ 리ν΄λ³Έλ€. memo()κ°λ ν¨μν μ»΄ν¬λνΈλ₯Ό λ©λͺ¨μ΄μ μ΄μ (Memoization)νμ¬ λΆνμν 리λ λλ§μ λ°©μ§νλ μν μ νλ€.μ£Όλ‘ μ±λ₯ μ΅μ νλ₯Ό μν΄ μ¬μ©λλ€.import { memo } from 'react';const MyComponent = memo(function MyComponent({ prop1, prop2 }) => { // ...});export default MyComponent; κΈ°λ³Έμ μΌλ‘ μ»΄ν¬λνΈμ @props@κ° λ³κ²½λμ§ μμΌλ©΄ μ»΄ν¬λνΈλ₯Ό λ€μ λ λλ§νμ§ μλλ€.@props@μ μμ λΉκ΅(Shallow Comparison)λ₯Ό ν΅ν΄ μ΄λ£¨μ΄μ§λ€.μμ λΉκ΅λ κΈ°λ³Έ μλ£ν(μ«μ, λ¬Έ..
2024.06.25 -
- [React.js] useEffectμ useCallbackuseEffectμ useCallbackλ€μ΄κ°λ©°λ¦¬μ‘νΈμμ μ¬μ©λλ @useCallback@κ³Ό @useEffect@μ λν΄ μμ보μ. @useCallback@리μ‘νΈμμ ν¨μλ₯Ό λ©λͺ¨μ΄μ μ΄μ (Memoization)νλ λ° μ¬μ©λλ€.λΆνμν ν¨μμ μ¬μμ±μ λ°©μ§νκ³ , ν¨μκ° μμ‘΄νλ κ°μ΄ λ³κ²½λ λλ§ μλ‘μ΄ ν¨μλ₯Ό μμ±νλλ‘ ν μ μλ€. μμ μ½λμλμ μ½λμμ @handleClick@ ν¨μλ @count@ λ³μκ° λ³κ²½λ λλ§ μ¬μμ± λλ€.κ·Έλ μ§ μμ κ²½μ° @handleClick@ ν¨μλ μ¬μμ±λμ§ μμΌλ©°, κ°μ ν¨μλ₯Ό κ³μ μ¬μ©νκ² λλ€.μ΄λ κ² ν κ²½μ° ν¨μμ μ¬μμ±μ μ΅μννμ¬ μ±λ₯ μ΅μ νλ₯Ό νλλ° λμμ μ€ μ μλ€.import React, { useCallback, useState } from 'rea..
2024.06.24 -
- [BOJ-2156][C++] ν¬λμ£Ό μμλ¬Έμ ν¨μ£Όλ ν¬λμ£Ό μμνμ κ°λ€. κ·Έ κ³³μ κ°λλ, ν μ΄λΈ μμ λ€μν ν¬λμ£Όκ° λ€μ΄μλ ν¬λμ£Ό μμ΄ μΌλ ¬λ‘ λμ¬ μμλ€. ν¨μ£Όλ ν¬λμ£Ό μμμ νλ €κ³ νλλ°, μ¬κΈ°μλ λ€μκ³Ό κ°μ λ κ°μ§ κ·μΉμ΄ μλ€. ν¬λμ£Ό μμ μ ννλ©΄ κ·Έ μμ λ€μ΄μλ ν¬λμ£Όλ λͺ¨λ λ§μ μΌ νκ³ , λ§μ νμλ μλ μμΉμ λ€μ λμμΌ νλ€. μ°μμΌλ‘ λμ¬ μλ 3μμ λͺ¨λ λ§μ€ μλ μλ€. ν¨μ£Όλ λ μ μλ λλ‘ λ§μ μμ ν¬λμ£Όλ₯Ό λ§λ³΄κΈ° μν΄μ μ΄λ€ ν¬λμ£Ό μμ μ νν΄μΌ ν μ§ κ³ λ―Όνκ³ μλ€. 1λΆν° nκΉμ§μ λ²νΈκ° λΆμ΄ μλ nκ°μ ν¬λμ£Ό μμ΄ μμλλ‘ ν μ΄λΈ μμ λμ¬ μκ³ , κ° ν¬λμ£Ό μμ λ€μ΄μλ ν¬λμ£Όμ μμ΄ μ£Όμ΄μ‘μ λ, ν¨μ£Όλ₯Ό λμ κ°μ₯ λ§μ μμ ν¬λμ£Όλ₯Ό λ§μ€ μ μλλ‘ νλ νλ‘κ·Έλ¨μ μμ±νμμ€. μλ₯Ό λ€μ΄ ..
2022.12.13 -
- [BOJ-2579][C++] κ³λ¨ μ€λ₯΄κΈ°λ¬Έμ κ³λ¨ μ€λ₯΄κΈ° κ²μμ κ³λ¨ μλ μμμ λΆν° κ³λ¨ κΌλκΈ°μ μμΉν λμ°©μ κΉμ§ κ°λ κ²μμ΄λ€. κ³Ό κ°μ΄ κ°κ°μ κ³λ¨μλ μΌμ ν μ μκ° μ°μ¬ μλλ° κ³λ¨μ λ°μΌλ©΄ κ·Έ κ³λ¨μ μ°μ¬ μλ μ μλ₯Ό μ»κ² λλ€. μλ₯Ό λ€μ΄ μ κ°μ΄ μμμ μμλΆν° 첫 λ²μ§Έ, λ λ²μ§Έ, λ€ λ²μ§Έ, μ¬μ― λ²μ§Έ κ³λ¨μ λ°μ λμ°©μ μ λλ¬νλ©΄ μ΄ μ μλ 10 + 20 + 25 + 20 = 75μ μ΄ λλ€. κ³λ¨ μ€λ₯΄λ λ°λ λ€μκ³Ό κ°μ κ·μΉμ΄ μλ€. κ³λ¨μ ν λ²μ ν κ³λ¨μ© λλ λ κ³λ¨μ© μ€λ₯Ό μ μλ€. μ¦, ν κ³λ¨μ λ°μΌλ©΄μ μ΄μ΄μ λ€μ κ³λ¨μ΄λ, λ€μ λ€μ κ³λ¨μΌλ‘ μ€λ₯Ό μ μλ€. μ°μλ μΈ κ°μ κ³λ¨μ λͺ¨λ λ°μμλ μ λλ€. λ¨, μμμ μ κ³λ¨μ ν¬ν¨λμ§ μλλ€. λ§μ§λ§ λμ°© κ³λ¨μ λ°λμ λ°μμΌ νλ€. λ°λΌμ 첫 λ²μ§Έ κ³λ¨μ ..
2022.12.09 -
- [BOJ-9184][C++] μ λλ ν¨μ μ€νλ¬Έμ μ¬κ· νΈμΆλ§ μκ°νλ©΄ μ μ΄ λλ€! μλκ°μ? λ€μκ³Ό κ°μ μ¬κ·ν¨μ w(a, b, c)κ° μλ€. if a 20, then w(a, b, c) returns: w(20, 20, 20) if a < b and b < c, then w(a, b, c) returns: w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c) otherwise it returns: w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1) μμ ν¨μλ₯Ό ꡬννλ κ²μ λ§€μ° μ½λ€. νμ§λ§, κ·Έλλ‘ κ΅¬ννλ©΄ κ°μ ꡬνλλ° λ§€μ° μ€λ μκ°μ΄ κ±Έλ¦°λ€. (μλ₯Ό λ€λ©΄, a=15, b=15, c=15) a, b, cκ° μ£Όμ΄μ‘μ λ, w(a, b, c)λ₯Ό μΆλ ₯..
2022.12.04 -
- [BOJ-1010][C++] λ€λ¦¬ λκΈ°λ¬Έμ μ¬μμ΄λ ν λμμ μμ₯μ΄ λμλ€. μ΄ λμμλ λμλ₯Ό λμͺ½κ³Ό μμͺ½μΌλ‘ λλλ ν° μΌμ§μ λͺ¨μμ κ°μ΄ νλ₯΄κ³ μλ€. νμ§λ§ μ¬μμ΄λ λ€λ¦¬κ° μμ΄μ μλ―Όλ€μ΄ κ°μ 건λλλ° ν° λΆνΈμ κ²ͺκ³ μμμ μκ³ λ€λ¦¬λ₯Ό μ§κΈ°λ‘ κ²°μ¬νμλ€. κ° μ£Όλ³μμ λ€λ¦¬λ₯Ό μ§κΈ°μ μ ν©ν κ³³μ μ¬μ΄νΈλΌκ³ νλ€. μ¬μμ΄λ κ° μ£Όλ³μ λ©΄λ°ν μ‘°μ¬ν΄ λ³Έ κ²°κ³Ό κ°μ μμͺ½μλ Nκ°μ μ¬μ΄νΈκ° μκ³ λμͺ½μλ Mκ°μ μ¬μ΄νΈκ° μλ€λ κ²μ μμλ€. (N ≤ M) μ¬μμ΄λ μμͺ½μ μ¬μ΄νΈμ λμͺ½μ μ¬μ΄νΈλ₯Ό λ€λ¦¬λ‘ μ°κ²°νλ €κ³ νλ€. (μ΄λ ν μ¬μ΄νΈμλ μ΅λ ν κ°μ λ€λ¦¬λ§ μ°κ²°λ μ μλ€.) μ¬μμ΄λ λ€λ¦¬λ₯Ό μ΅λν λ§μ΄ μ§μΌλ €κ³ νκΈ° λλ¬Έμ μμͺ½μ μ¬μ΄νΈ κ°μλ§νΌ (Nκ°) λ€λ¦¬λ₯Ό μ§μΌλ €κ³ νλ€. λ€λ¦¬λΌλ¦¬λ μλ‘ κ²Ήμ³μ§ μ μλ€κ³ ν λ λ€λ¦¬λ₯Ό μ§..
2022.11.15 -
- [BOJ-11051][C++] μ΄ν κ³μ 2λ¬Έμ μμ°μ `N`κ³Ό μ μ `K`κ° μ£Όμ΄μ‘μ λ μ΄ν κ³μ ${N \choose K}$λ₯Ό 10,007λ‘ λλ λλ¨Έμ§λ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€. μ λ ₯ 첫째 μ€μ `N`κ³Ό `K`κ° μ£Όμ΄μ§λ€. ($1 ≤ N ≤ 1000, 0 ≤ K ≤ N$) μΆλ ₯ ${N \choose K}$ λ₯Ό 10,007λ‘ λλ λλ¨Έμ§λ₯Ό μΆλ ₯νλ€. μμ μ λ ₯ 1 5 2 μμ μΆλ ₯ 1 10 μκ³ λ¦¬μ¦ λΆλ₯ μν λ€μ΄λλ―Ή νλ‘κ·Έλλ° μ‘°ν©λ‘ λ¬Έμ μΆμ² https://www.acmicpc.net/problem/11051 11051λ²: μ΄ν κ³μ 2 첫째 μ€μ \(N\)κ³Ό \(K\)κ° μ£Όμ΄μ§λ€. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net λ¬Έμ ν΄κ²° λ°©λ² μ΄ν κ³μλ₯Ό ꡬνλ μκ³ λ¦¬μ¦μ λ©λͺ¨μ΄..
2022.11.15 -
- [BOJ-11050][C++] μ΄ν κ³μ 1λ¬Έμ μμ°μ `N`κ³Ό μ μ `K`κ° μ£Όμ΄μ‘μ λ μ΄ν κ³μ ${N \choose K}$λ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€. μ λ ₯ 첫째 μ€μ `N`κ³Ό `K`κ° μ£Όμ΄μ§λ€. ($1 ≤ N ≤ 10, 0 ≤ K ≤ N$) μΆλ ₯ ${N \choose K}$ λ₯Ό μΆλ ₯νλ€. μμ μ λ ₯ 1 5 2 μμ μΆλ ₯ 1 10 μκ³ λ¦¬μ¦ λΆλ₯ μν ꡬν μ‘°ν©λ‘ λ¬Έμ μΆμ² https://www.acmicpc.net/problem/11050 11050λ²: μ΄ν κ³μ 1 첫째 μ€μ \(N\)κ³Ό \(K\)κ° μ£Όμ΄μ§λ€. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net λ¬Έμ ν΄κ²° λ°©λ² μ΄ν κ³μλ₯Ό ꡬνλ μκ³ λ¦¬μ¦μ μ΄μ©νμ¬ λ¬Έμ λ₯Ό ν΄κ²°νμλ€. κ΄λ ¨ κ²μκΈ : https://dev-astra.tisto..
2022.11.15