이번 글에서는 useRef에 대해서 이야기해보겠습니다. useRef1) 역할 useRef hook은 Component의 생명주기 동안 지속되는 가변값을 저장하는 데 사용됩니다.주로 JSX 요소에 ref 속성으로 연결하여 해당 DOM 요소에 직접 접근할 수 있게 하거나, 이전 상태를 기억하는 등의 용도로 사용됩니다.2) 동작 방식초기화useRef(initialValue)를 호출하여 ref 객체를 생성합니다.반환된 객체는 { current: initialValue } 형태를 가집니다.값 접근 및 수정ref.current를 통해 현재 값에 접근하거나 수정할 수 있습니다.current 속성은 변경 가능(mutable)합니다.Rendering의 독립성 useState hook와 달리 ref.current의 값이 ..
👉🏻 13235번: 팰린드롬def is_palindrome(s): left, right = 0, len(s)-1 while left 단순 문자열 비교(s == s[::-1])로도 간단히 풀 수 있는 문제이지만, Two Pointer 기법으로 조금 더 효율적으로 풀게 되었습니다.
👉🏻 26085번: 효구와 호규 (Easy) 0 1 0 1 1 1 0 0 1 0 1 0 초기 상태 0 1 0 1 0 0 1 0 1 0 1-1 제거 0 1 0 1 1 0 0 0 ..
이번 글에서는 useEffect에 대해서 이야기해보겠습니다. useEffect1) 역할 useEffect는 React Component에서 side effects를 수행하기 위한 Hook입니다.side effects는 데이터를 fetch하거나, 수동으로 DOM을 조작하는 등 Component의 주요 렌더링 로직 외에 실행되어야 하는 모든 작업을 의미합니다.useEffect를 통해 함수형 Component에서도 클래스형 Component의 생명주기 메소드와 유사한 기능을 구현할 수 있습니다.2) 동작 방식기본적으로 useEffect는 모든 렌더링 이후에 실행됩니다.첫 번째 인자로 side effects를 수행할 callback function을 받습니다.두 번째 인자로 의존성 배열(dependency ar..
👉🏻 19621번: 회의실 배정 2 회의실 배정2 DP 0 40 80 120 160 200 회의 1 (80명) 회의 2 (60명) 회의 3 (70명) 회의 4 (100명) 회의 5 (40명) 회의 6 (50명) DP 과정: 초기화: parts = [80, 60, 70, 100, 40, 50] Step 1: parts = [80, 60, 70, 100, 40, 50] (변화 없음) Step 2: ..
👉🏻 4096번: 팰린드로미터import sys; input=sys.stdin.readlinewhile True: n = input().rstrip() if n == '0': break min_distance = 0 while n != n[::-1]: min_distance += 1 n = str(int(n) + 1).zfill(len(n)) print(min_distance)브루트포스를 이용하여 각 숫자가 팰린드롬에 해당하는지를 검사하는 문제였습니다.기존 자릿수를 보존하기 위해서 zfill()을 사용해 앞쪽에 필요한 만큼 '0'을 채워주었습니다.
현재 개발 중인 Conti:ed 서비스를 위해 사용된, 그리고 앞으로 사용될 React hook들에 대해 정리해볼까 합니다.이번 글에서는 useState에 대해서 다루고, 이후 계속해서 다른 hook들에 대해서도 작성할 예정입니다. useState1) 역할useState Hook은 Component에서 상태를 선언하고 관리하는 데 사용됩니다.Class였던 Component에서 사용하던 this.state와 this.setState를 함수형 컴포넌트에서도 사용할 수 있게 합니다.2) 동작 방식useState는 초기 상태 값을 인자로 받아 배열을 반환합니다.첫 번째 요소는 현재 상태 값을 나타내는 변수입니다.두 번째 요소는 상태를 갱신할 수 있는 함수입니다.두 번째 요소인 상태 갱신 함수는 새로운 상태 값을..
👉🏻 14646번: 욱제는 결정장애야!!n = int(input())menu = list(map(int, input().split()))s = [False] * (n+1)cnt, ans = 0, 0for item in menu: if not s[item]: s[item] = True cnt += 1 else: s[item] = False cnt -= 1 ans = max(ans, cnt)print(ans)s 리스트의 해싱을 활용해 각 메뉴가 선택되었는지를 확인할 수 있게끔 하였습니다. Maximum Tracking하는 방식은 다른 문제들을 풀 때에도 유용하게 사용될 수 있습니다.