전체 글

전체 글

    [Node.js] 동기와 비동기, 블로킹과 논블로킹

    블로킹과 논블로킹의 차이 제어권을 콜백함수에 넘겨주느냐 마느냐의 차이입니다. A함수가 B함수를 호출 시 블로킹 경우 콜백함수를 실행 할 때 B함수에 제어권을 넘깁니다. 따라서 A함수는 제어권이 없기 때문에 잠시 실행을 멈추게 됩니다. 논블로킹 A함수가 B함수를 호출해도 제어권은 A함수가 그대로 가지고 있습니다. 따라서 A함수는 B함수를 호출한 이후에도 그대로 실행됩니다. 동기와 비동기의 차이 호출되는 함수의 결과값을 신경쓰냐 마냐의 차이 동기 A함수가 B함수를 호출하고 리턴값을 계속 신경쓰는 방식입니다. 비동기 A함수가 B함수를 호출할 때 콜백함수를 함께 전달해서 함수 B의 작업이 완료되면 함께보낸 콜백함수를 실행하는 방식입니다. 이제 이 둘을 섞어서 비교해보자 동기를 블로킹처럼 실행(Sync-Block..

    [알고리즘] 재귀함수와 반복문을 이용한 이진탐색

    이진탐색은 데이터가 정렬된 경우에만 사용가능합니다. 1. 재귀를 이용한 이진탐색 def binary_search(array, target, start, end): if start > end: return None mid = (start + end) // 2 # 찾은 경우 중간점 인덱스 반환 if array[mid] == target: return mid # 중간점의 값보다 찾고자 하는 값이 작은 경우 왼쪽 확인 elif array[mid] > target: return binary_search(array, target, start, mid - 1) # 중간점의 값보다 찾고자 하는 값이 큰 경우 오른쪽 확인 else: return binary_search(array, target, mid + 1, end)..

    거스름돈 거슬러주기 - [그리디]

    당신은 음식점의 계산을 도와주는 점원입니다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원 짜리 동전이 무한히 존재한다고 가정. 손님에게 거슬러 주어야할 돈이 N원일 때 거슬러 주어야 할 동전의 최소 개수를 구하세요 단, 거슬러 줘야 할 돈 N은 항상 10의 배수 n = 1260 count = 0 # 큰 단위의 화폐부터 차례대로 확인 array = [500, 100, 50, 10] for coin in array: count =+ n // coin # 해당 화폐로 거슬러 줄 수 있는 동전의 개수 세기 n %= coin # n을 coin으로 나눈 나머지 값 print(count)

    [백준 기본수학1] 1193 분수찾기 파이썬

    n = int(input()) chk = 0 cnt = 0 while n > chk: cnt += 1 # cnt = 껍질 수 chk += cnt # chk = 해당껍질까지의 분수 개수 rst = chk - n if cnt % 2 == 0: # 위에서 시작 print(str(cnt - rst) + '/' + str(rst + 1)) else: # 아래에서 시작 print(str(rst + 1) + '/' + str(cnt - rst)) https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net

    [React] state와 reducer를 추가하고 싶다면??

    (index.js) let 초기값 = [ { id : 0, name : '멋진신발', quan : 2 }, { id : 1, name : '멋진신발2', quan : 1 } ] function reducer(state = 초기값, 액션) { // 여기서 등호가 들어가는 문법은 default parameter 문법(ES6 문법) if (액션.type === '수량증가') { let copy = [...state] copy[0].quan++ return copy } else { return state } } let store = createStore(reducer) 위 코드는 기존의 state와 reducer인데 여기에 다른 상태를 더 저장하고자 한다면 (index.js) let alert초기값 = true..