목록전체 글 (90)
Post-IT

1. 문제 분석 격자내에서 이동하는 문제는 DFS로 많이 풀었었는데, 이건 조금 결이 다르다고 느껴졌다. 인접한 칸을 제외하고 K개의 칸에 수를 합해서 최댓값을 구하면 된다. 결국 전부 해봐야되는건 맞는거 같은데 어떻게 더할 것인가가 핵심이다. 시간 초과가 되지 않게 모든 경우의 수를 계산해보고 최댓값을 구하면 된다. 필자는 백트래킹을 활용해서 풀었다. N,M,K의 수가 크지 않기에 아래의 복잡도가 되어도 1초가 넘지 않는다. 시간복잡도 : O((NxM)^K)알고리즘 : 백트래킹2. 문제 풀이백트래킹 부분을 슈도코드로 작성하면 다음과 같다. static void backtracking(int count, int row, int col, int sum){ // K개의 노드를 골랐을 때 최댓값이면 정..

백트래킹 알고리즘이란 모든 경우의 수를 탐색하여 문제를 해결하는 알고리즘입니다. 주로 조합, 순열, 그래프 탐색, 최적화 문제에서 사용됩니다. 백트래킹은 상태 공간 트리를 기반으로 동작하며, 현재 상태가 유망하지 않으면 탐색을 중단하고 이전 단계로 되돌아가는 방식입니다. 미로찾기랑 비슷한 원리인데 미로찾기로 따라가다가 막다른 길이 나오면 다시 갈림길로 되돌아가서 출구를 찾는것과 비슷한 원리입니다.백트래킹 동작 원리상태 공간 정의 : 문제를 해결하기 위해 탐색해야 할 모든 가능한 상태를 정의합니다.유망성 검사 : 현재 상태가 문제의 조건을 만족할 가능성이 있는지 확인합니다. 조건을 만족하지 않으면 더 탐색하지 않습니다.목표 탐색 : 유망한 상태에서 더 깊이 탐색하며, 목표를 찾습니다.백트래킹 : 목표 상태..

useEffect는 리액트 훅 중 하나로, 컴포넌트의 부수 효과를 처리하기 위해 사용됩니다. 컴포넌트가 렌더링 되거나 업데이트될 때, 그리고 컴포넌트가 언마운트될 때 특정 작업을 수행할 수 있도록 도와줍니다.왜 useEffect를 사용하는가?React는 컴포넌트의 렌더링과 상태 관리를 중심으로 설계되었지만, 다음과 같은 부수 효과를 처리해야 하는 경우가 있습니다.데이터 가져오기(API 호출)컴포넌트가 마운트되었을 때 서버에서 데이터를 가져오는 작업브라우저 API 사용document.title 변경, 이벤트 리스너 등록/해제 등타이머 및 구독 관리setInterval 또는 WebSocket 연결 관리컴포넌트 언마운트 처리리소스 정리 작업useEffect의 사용 방법1. 기본 구조useEffect는 두 개의..

State는 React 컴포넌트에서 사용되는 동적인 데이터를 저장하고 관리하는 객체입니다. State는 컴포넌트의 상태 정보를 담고 있으며, 컴포넌트 내부에서 데이터가 변경될 때마다 UI를 업데이트 하는 역할을 합니다.State를 사용하는 이유동적인 UI 관리State는 동적으로 변하는 데이터를 저장합니다. 사용자 입력, 네트워크 응답, 타이머 등의 이벤트에 따라 UI를 업데이트할 수 있습니다.컴포넌트의 상태 추적State를 통해 컴포넌트가 현재 어떤 상태인지를 추적할 수 있습니다.React의 효율적인 렌더링State가 변경되면 React는 필요한 부분만 다시 렌더링하여 앱의 성능을 유지합니다.State의 사용 방법React에서 state는 주로 함수형 컴포넌트에서 useState 훅을 사용하여 관리합니..

Props는 Properties의 줄임말로, React 컴포넌트에서 부모 컴포넌트가 자식 컴포넌트에 데이터를 전달하기 위해 사용하는 객체입니다. Props는 읽기 전용(Read-only) 속성을 가지며, 컴포넌트 간의 데이터 흐름을 단방향으로 유지하게 만듭니다.왜 Props를 사용하는가?컴포넌트 간 데이터 전달부모에서 자식 컴포넌트로 데이터를 전달하기 위해 사용됩니다. 이를 통해 컴포넌트 간에 동적으로 데이터를 주고받을 수 있습니다.재사용성 증가Props를 사용하면 동적으로 데이터에 따라 랜더링할 수 있으므로 컴포넌트를 더 유연하고 재사용 가능하게 만듭니다.UI의 동적 업데이트Props를 통해 전달된 데이터가 변경되면 해당 데이터를 사용하는 자식 컴포넌트가 자동으로 업데이트 됩니다.Props 사용방법1...

리액트에서 컴포넌트는 UI의 구성 요소로, 리액트 애플리케이션을 구성하는 핵심적인 단위입니다. 컴포넌트는 독립적이고 재사용 가능한 코드 조각으로, 애플리케이션의 화면을 렌더링하고 상호 작용을 처리하는 역할을 합니다. 컴포넌트는 두가지 주요 형태로 나뉩니다. 함수형 컴포넌트와 클래스형 컴포넌트입니다. 리액트 16.8 이후로 함수형 컴포넌트가 더 많이 사용됩니다.함수형 컴포넌트의 특징함수형 컴포넌트는 자바스크립트 함수로 정의되며, JSX를 반환합니다. 함수형 컴포넌트에서는 props를 통해 외부 데이터를 전달 받고, state와 기타 리액트 기능은 훅을 사용하여 관리합니다.import React from 'react';const MyComponent = () => { return ( Hel..

이더리움(Ethereum)은 2015년 비탈릭 부테린(Vitalik Buterin)이 주도하여 개발한 블록체인 플랫폼으로, 비트코인의 한계를 극복하고 더 넓은 응용 가능성을 제공하기 위해 설계되었습니다. 이더리움의 탄생 배경비트코인은 2009년 출시되어 분산형 금융 시스템을 구현하는 데 성공했지만, 디지털 화폐로 설계되어 복잡한 논리를 실행할 수 있는 프로그래밍 기능은 부족했습니다. 네트워크 트랜잭션 처리 속도가 낮고, 대규모 사용자를 지원하기에는 무리였습니다. 비탈릭 부테린은 비트코인의 단점을 보완하고, 더 유연하고 강력한 블록체인 플랫폼을 만들기 위해 이더리움을 제안했습니다. 단순히 암호화폐로 거래하는 것을 넘어, 모든 형태의 탈중앙화 애플리케이션을 실행할 수 있는 프로그래밍 가능한 플랫폼을 제공하는..