분류 전체보기 138

백준 24444 - 알고리즘 수업 - 너비 우선 탐색1

https://www.acmicpc.net/problem/24444 24444번: 알고리즘 수업 - 너비 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양방 www.acmicpc.net 이 문제는 트리 자료구조의 BFS 알고리즘의 대표적인 기초 문제라고 볼 수 있다. 이 문제를 해결하기 위해서는 다음과 같은 정보가 필요하다. 1. 각 노드들과 인접한 노드들의 정보 → 그래야 인접한 노드들을 타고 타고 들어갈 수 있다. 2. 각 노드들의 방문 여부 → 방문하지 않은 노드만 탐색하기 위함이다. 3. 인접 노드..

코딩 문제 2024.04.10

백준 24479 - 알고리즘 수업 - 깊이 우선 탐색1

https://www.acmicpc.net/problem/24479 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 이 문제는 트리 자료구조의 DFS 알고리즘의 대표적인 기초 문제라고 볼 수 있다. 이 문제를 해결하기 위해서는 다음과 같은 정보가 필요하다. 1. 각 노드들과 인접한 노드들의 정보 → 그래야 인접한 노드들을 타고 타고 들어갈 수 있다. 2. 각 노드들의 방문 여부 → 방문하지 않은 노드만 탐색하기 위함이다. 문제에서는 1부터..

코딩 문제 2024.04.09

React - 상태 관리

이번 포스팅에서는 리액트에서의 상태 관리에 대해 공부해 보려고 한다. 앞서, React - State & Props 포스팅에서 State와 Props에 대해 공부했었다. 상태 관리 공부를 하기 전에, State와 Props에 간단히 정리해보자. State는, 특정 컴포넌트 내부 안에서 선언되고 특정 컴포넌트가 갖는 상태(값)을 변경하기 위해 사용한다. Props는, 부모 컴포넌트에서 자식 컴포넌트로 데이터(상태)를 전달하기 위해 사용한다. (데이터 변경 불가 only 전달용) 왜 상태 관리 공부를 하기 전에 State & Props에 대해 먼저 짚어본 것일까? 상태 관리란, State & Props 사용시 발생되는 단점을 보완하기 위해 사용하는 것이기 때문이다. 리액트는, 페이지를 수많은 컴포넌트들로 쪼..

웹 프론트엔드 2024.04.04

React - router

이번 포스팅에서는 리액트에서의 라우팅에 대해 공부해 보려고 한다. 리액트를 사용하면 하나의 페이지 안에 있는 요소를 여러 컴포넌트로 쪼개어 렌더링할 수 있다. 따라서 다양한 컴포넌트를 하나의 페이지에서 활용한다면, 하나의 웹페이지로도 웹사이트를 개발할 수 있을 것이다. SPA(Single Page Application) 단일 웹페이지로 동작하는 애플리케이션 브라우저에서 자바스크립트를 이용해 단일 웹페이지 상의 HTML 요소를 동적으로 생성 및 조작 검색 엔진 최적화(SEO)에 적합하지는 X React, Svelte, Vue.js와 같은 라이브러리로 개발 가능 리액트에서 라우팅은 어떻게 이루어질까? 먼저, 라우팅이란 사용자가 요청한 URL에 따라 해당 URL에 맞는 페이지를 보여주는 것을 뜻한다. 리액트에..

웹 프론트엔드 2024.04.02

[알고리즘] 이진 탐색(Binary Search)

이번 포스팅에서는 파이썬 코테에 자주 등장하는 유형 중 하나인, 이진 탐색 알고리즘에 대해 공부해보려고 한다. 이진 탐색(Binary Search) 정렬되어 있는 리스트에서 탐색 범위를 절반씩 줄여가며 데이터를 탐색하는 알고리즘 반드시, 정렬된 리스트에서 사용해야 함 찾으려는 데이터와 중간 위치에 있는 데이터를 반복적으로 비교해서 크기가 작으면 중간점을 왼쪽으로 옮기고, 크기가 크면 중간점을 오른쪽으로 옮기는 과정을 반복 시간 복잡도는 O(logN) 이진 탐색은 재귀함수 또는 반복문으로 구현할 수 있으며, 아래의 코드는 반복문으로 구현한 코드이다. def binary_search(arr, target): start = 0 end = len(arr)-1 while start target: # 찾고자하는 데..

파이썬 문법 2024.04.01

React - hooks

이번 포스팅에서는 react에서의 hooks에 대해 공부해 보려고 한다. Hooks React의 새로운 기능 클래스 컴포넌트에서만 가능했던 state(상태관리)와 lifecycle(라이프사이클)이 함수형 컴포넌트에서도 사용 가능하도록 돕는 기능 사용 규칙 최상위 단계에서만 호출 가능(최상위 컴포넌트X) 반복문, 조건문, 중첩된 함수 내부에서 호출X Hook은 React 함수형 컴포넌트 안에서만 호출 가능 커스텀 훅 이름은 "use"로 시작하는 것을 권장함 자주 사용되는 Hooks에 대해 간단히 정리한 표는 다음과 같다. Hooks 종류 설명 useState() 상태 관리를 위한 가장 기본적인 훅 useRef() ref를 생성하고 관리할 수 있는 훅(DOM 접근, 변수 보존 등) useEffect() 컴포..

웹 프론트엔드 2024.04.01

React - Ref & Life Cycle(생명 주기)

이번 포스팅에서는 Ref와 Life Cycle에 대해 공부해볼 것이다. html에서 특정 요소에 접근하기 위해서는 어떻게 할까? html에서는 원하는 요소에 고유한 값을 갖는 id 속성을 할당하여 해당 id 값을 갖는 특정 요소에 직접 접근한다. 반면, react에서는 ref를 사용하여 특정 요소에 접근한다. ref에 대해 자세히 공부하기 전에, 왜 react에서도 html과 같이 id를 활용하여 특정 요소에 접근하는 방식을 사용하지 않는지에 대해 먼저 알아보자. react에서도 id를 사용할 수 있다. JSX 안에서 DOM에 id를 할당하면 해당 DOM을 렌더링할 때 그대로 적용이 된다. 하지만, 특수한 경우가 아니라면 권장하지 않는 방법이다. 왜일까? react는 UI 전체를 컴포넌트로 쪼갠다는 특징..

웹 프론트엔드 2024.03.30

React - Event Handling

이번 포스팅에서는 React에서의 Event에 대해 공부해보려고 한다. React에서 이벤트를 처리할 때 몇 가지 주의할 점들이 있다. 1.React에서의 이벤트 이름은 소문자가 아닌 camelCase를 사용한다. 예로, 클릭시 발생하는 이벤트를 떠올려보자. html에서는 해당 이벤트를 걸 요소에 onclick = "~" 을 사용했지만, React에서는 onClick = {~} 으로 사용한다. 2. 이벤트 핸들러는 문자열이 아닌 JSX를 사용하여 전달한다. html에서는 문자열로 감싸서 함수를 실행시켰지만, React에서는 JSX를 사용하여 함수 자체를 전달한다. onClick = {함수명} 3. React에서는 false를 반환해도 기본 동작을 방지할 수 없다. 반드시 preventDefault를 명시..

웹 프론트엔드 2024.03.29

파이썬 진법 변환 int(), bin(), oct(), hex()

이번 포스팅에서는 파이썬에서 숫자를 특정 진수로 변환하는데 쓰이는 함수들에 대해 정리해 보려고 한다. n진수 → 10진수 int('string', base) 첫 번째 인자로는 숫자로만 이루어진 문자열, 두 번째 인자로는 진법을 넘겨받음 n진수 → 10진수로 변환해주며, 결과값은 문자열로 반환됨(반드시 정수로 변환한 다음 사용할 것) 10진수 → n진수 여기서부터는 10진수를 2, 8, 16진수로 변환하기 위한 함수들을 정리해볼 것이다. bin(n) n을 2진수로 변환해주는 함수이며, 결과값은 문자열으로 반환됨 결과값: 0b~~~의 형태이고, 여기서 0b는 2진수를 의미함 0b를 지우기 위해서는 문자열의 slicing을 이용하면 됨 bin(n)[2: ] bin(10)[2: ] # 1010 oct(n) n을..

파이썬 문법 2024.03.26

파이썬 re 모듈 search(), sub(), findall()

이번 포스팅에서는 파이썬의 기본 내장 모듈인 re 모듈에 대해 공부해 보려고 한다. re모듈이란, 정규표현 처리를 지원하기 위해 파이썬에서 제공하는 기본 내장 모듈이다. re모듈의 여러 함수들 중에서, 코테 문제를 풀 때 사용될만한 함수들을 간단히 정리해볼 것이다. re.search() re.search("찾을 패턴", "전체 문자열") 전체 문자열에 대해서 특정 패턴(문자열)과 일치하는 첫 번째 위치를 찾아줌 일치하는 (첫 인덱스, 마지막 인덱스)가 담긴 객체를 반환 (객체의 span에 들어있음) 결과값(범위)을 알고 싶을 경우엔, 객체의 span에 접근하여 가지고 오면 됨(튜플형태로 들어있음) import re s = "1q2w3e4r5t6yzxczxca" find = "qwerty" new_s = ..

파이썬 문법 2024.03.26