매일은 아니더라도 꾸준하게
728x90

전체 글 34

[알고리즘이론] 백트래킹(Backtracking) 파이썬으로 구현하기

백트래킹(Backtracking)은 해를 찾는 도중에 가능성이 없는 부분을 차단하여 불필요한 탐색을 줄이는 알고리즘입니다. 파이썬에서는 다음과 같이 백트래킹 알고리즘을 구현할 수 있습니다. 예제: N-Queen 문제 N x N 크기의 체스판 위에 N개의 퀸을 놓는 문제입니다. 퀸은 가로, 세로, 대각선 방향으로 모두 공격할 수 있으므로, 서로 공격할 수 없도록 N개의 퀸을 놓는 문제입니다. 백트래킹 알고리즘을 사용하여 퀸을 놓을 수 있는 모든 경우의 수를 구합니다. def is_available(candidate, current_col): current_row = len(candidate) for queen_row in range(current_row): if candidate[queen_row] == ..

[알고리즘이론] 분할정복(Divide and Conquer) 파이썬으로 구현하기

분할정복(Divide and Conquer) 알고리즘은 큰 문제를 작은 문제로 분할한 후, 각 작은 문제를 해결하고, 이를 합쳐서 큰 문제를 해결하는 알고리즘입니다. 파이썬에서는 다음과 같이 분할정복 알고리즘을 구현할 수 있습니다. 예제: 이진 탐색 주어진 정렬된 리스트에서 특정한 값의 위치를 찾는 문제입니다. 이진 탐색은 리스트의 중간 위치의 값을 검사하여 찾고자 하는 값이 리스트의 중간 위치보다 큰지 작은지를 비교하여 검색 범위를 절반으로 줄여가면서 값을 찾아갑니다. def binary_search(lst, x): start = 0 end = len(lst) - 1 while start x: end = mid - 1 else: start = mid + 1 return -1 # 정렬된 리스트에서 5의 ..

[처음 만난 리액트] 섹션 9. Conditional Rendering

Conditional Rendering Condition 조건, 상태를 의미 Conditional Rendering 조건에 따른 렌더링 조건부 렌더링 어떠한 조건(조건문의 True, False)에 따라서 렌더링이 달라지는 것 function Greeting(props) { const isLogginedIn = props.isLoggedIn if (isLoggedIn) { return } return } Javascript의 Truthy와 Falsy Truthy : Javascript에서 True는 아니지만 True로 여겨지는 값 Falsy : Javascript에서 False는 아니지만 False로 여겨지는 값 // truthy true {} (empty object) [] (empty array) 42..

[처음 만난 리액트] 섹션 8. Handling Events

Event의 정의 및 Event 다루기 Event 특정 사건 예시 : 사용자가 버튼을 클릭한 사건 바인딩 사용하기 class Toggle extends React.Component { constructor(props) { super(props); this.state = { isToggleOn: True }; // callback에서 `this`를 사용하기 위해서는 바인딩을 필수적으로 해줘야 합니다. this.handleClick = this.handleClick.bind(this); } // 바인딩 사용 handleClick() { this. setState(prevState => ({ isToggleOn: !prevState.isToggleOn })); } render() { return ( {this..

[알고리즘이론] 그리디(Greedy) 파이썬으로 구현하기

그리디(Greedy) 알고리즘은 현재 상황에서 가장 좋은 선택을 하는 것을 반복하여 최적해를 구하는 알고리즘 기법입니다. 파이썬에서는 다음과 같이 그리디 알고리즘을 구현할 수 있습니다. 예제1: 동전 거스름돈 문제 n원의 동전을 거슬러 주어야 할 때, 거슬러 줄 동전의 개수가 최소가 되도록 하려면 어떻게 거슬러 줘야 할까요? 예를 들어, 1260원을 거슬러 주어야 할 때, 500원, 100원, 50원, 10원 동전이 각각 몇 개씩 필요한지 구하는 문제입니다. def change(n): coins = [500, 100, 50, 10] # 동전 종류 count = 0 # 거슬러 준 동전 개수 for coin in coins: count += n // coin # 동전 개수 누적 n %= coin # 거슬러 ..

[알고리즘이론] 완전탐색(Brute-force) 파이썬으로 구현하기

완전탐색(Brute-force)은 가능한 모든 경우를 검사하여 답을 찾는 알고리즘 기법입니다. 파이썬에서는 다음과 같이 완전탐색을 구현할 수 있습니다. 예제1: 주어진 리스트에서 최대값 찾기 def find_max(lst): max_value = lst[0] for i in range(1, len(lst)): if lst[i] > max_value: max_value = lst[i] return max_value # 주어진 리스트에서 최대값 찾기 lst = [3, 1, 5, 2, 4] print(find_max(lst)) 위 코드에서 find_max() 함수는 주어진 리스트에서 최대값을 찾아 리턴합니다. max_value 변수에 리스트의 첫번째 값을 할당하고, 반복문을 통해 리스트의 각 요소를 검사하면서..

[처음 만난 리액트] 섹션 7. Hooks

Hooks의 개념과 useState, useEffect Hook 갈고리 이름 앞에 use를 붙어야 함 useState state를 사용하기 위한 Hook import React, { useState } from "react"; function Counter(props) { var count = 0; return ( 총 {count}번 클릭했습니다. count++}> 클릭 ); } useState() 사용법 const [변수명, set함수명] = useState(초기값); import React, { useState } from "react"; function Counter(props) { const [count, setCount] = useState(0); // setCount : 변수 각각에 대해 se..

728x90