분류 전체보기 (92) 썸네일형 리스트형 [React] 리덕스 시작하기 (redux, react-redux) 🕵🏻♀️ 리덕스를 사용하는 이유 단방향 데이터 흐름의 탄생 양방향 데이터 흐름은 한 개의 모델이 여러 뷰를 조작하거나, 한 개의 뷰가 여러 모델을 조작할 수 있다. 이는 데이터 흐름을 이해하고 버그를 찾는 것을 방해한다. 이와 같은 이유로 단방향 데이터 흐름이 탄생했다. 단방향 데이터 흐름(= redux가 작동하는 방식)은 데이터가 한방향으로만 흐르기 때문에 데이터 흐름을 예측하기 쉽다. 편리한 state 관리 redux를 사용하지 않으면 react 컴포넌트 들은 각각 개별적으로 state를 관리합다. redux를 사용하면 state를 관리하는 전용 장소(store)에서 상태를 관리하고 컴포넌트는 그걸 보여주기만 하는 용도로 쓰인다. 🕵🏻♀️ redux적용 및 개념 ✔ 필요한 패캐지 설치 npm in.. [Nginx] putty에서 Nginx 설치 부터 실행, pm2 gitHub연결까지 🛵 Nginx의 역할 비동기, Event-Driven 방식으로 클라이언트에 요청을 처리해주는 웹서버 클라이언트의 요청 처리를 분산시킬 수 있는 로드 밸런스를 사용함으로써 효율적인 처리 정적파일을 다이렉트로 제공 클라이언트는 Nginx 포트로만 백엔드 서버에 접근할 수 있어 보안에 도움이 됨 동시 접속 처리에 특화된 웹 서버 프로그램이다. 클라이언트의 요청 처리를 분산시킬 수 있는 로드 밸런스를 사용하기 때문에 효율적인 처리가 가능 사용자가 요청하는 endpoint는 최종 목적지 서버가 아닌 리버스 프록시 → Nginx를 통해 express가 사용하는 실제 포트를 숨기고, Nginx의 80포트를 이용해 Reverse Proxying을 함으로써 클라이언트는 Nginx 포트로만 백엔드 서버에 접근할 수 있음 .. [Python] 백준 15684 : 사다리 조작 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 풀이 방법 i에서 출발했을 때, 어디서 끝나는지 return해줄 함수가 필요하다. board[a][b] = 1은 a번 점선 위치로 b에서 b+1로 갈 수 있음을 의미하고, board[a][b] = -1은 a번 점선 위치로 b에서 b-1로 갈 수 있음을 의미한다. board[a][b] = 0이라면 a번 점선 위치로 b세로줄에서 갈 수 있는 곳이 없음을 의미한다. 브루투포스를 이용해서 아직 연결되지 않은 가로줄 중 3개 이하를 뽑았을 때, i에서 시작하면 i로 끝나.. [Python] 백준 17609 : 회문 풀이 방법 투포인터로 하나씩 비교한다. 만약 좌우가 다른 문자가 나올 경우, left+1해서 검사하고 right-1해서 검사한다. 두 검사 결과 중 하나라도 회문이라면 유사회문이다. 전체 코드 def check(left, right): while left < right: if s[left] == s[right]: left += 1 right -= 1 else: return False return True def twopointer(left, right): while left < right: if s[left] == s[right]: left += 1 right -= 1 else: if check(left+1, right) or check(left, right-1): return 1 return 2 ret.. [Python] 백준 2531 : 회전 초밥 www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ www.acmicpc.net 풀이 방법 문제 이해 : 초밥을 k개 연속으로 먹었을 때 먹을 수 있는 최대 종류를 구하는 것이다. left부터 right까지 먹을 때, 먹을 수 있는 초밥의 종류를 canEat이라는 딕셔너리에 저장한다. 먹을 수 있는 초밥의 종류의 개수는 cnt에 저장한다. '회전' 초밥이기 때문에 0~k까지 뿐만아니라 n-1~k-1까지 순환할 수 있음을 잊으면 안된다. -> right.. [DP] 가장 긴 증가하는 부분 수열(LIS)의 구현 방법, 활용 백준 문제 모음 가장 긴 증가하는 부분 수열 LIS의 구현 방법 LIS의 구현 방법에는 기본 DP를 활용하는 방법과 Binary Search를 활용하는 방법이 있다. 만약 N이 O(N^2)로 처리할 경우 시간 초과가 날 만큼 크다면 반드시 Binary Search를 이용해서 풀어야 한다. 1. DP로만 풀이 n = int(input()) array = list(map(int, input().split())) dp = [1 for _ in range(n)] for i in range(1,n): for j in range(i): if array[j] < array[i]: dp[i] = max(dp[i], dp[j]+1) print(max(dp)) 2. Binary Search로 풀이 import bisect n = int(.. [Python] 백준 1700 멀티탭 스케줄링 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 풀이 방법 반복문으로 전기용품을 하나씩 방문하면서 플러그를 빼야하는지 안 빼도 되는지 체크한다. 플러그가 N개 이하로 꽂혀있거나, 현재 확인하려는 전기용품이 이미 꽂혀있다면 뽑지 않아도 된다. 뽑아야할 때, 꽂혀있는 플러그 중에서 이후 가장 나중에 사용되는 전기용품 또는 이후 사용되지 않는 전기용품을 먼저 뽑는다. N과 K모두 100이하 이므로 시간초과에 대해서 생각하지 않아도 된다. 전체 코드 n, k = map(int, input().split()) arr .. [Python] 백트래킹 구현 방법, 관련 문제 모음 백준 백트래킹 문제 모음 9663 N-Queen https://www.acmicpc.net/problem/9663 15686 치킨배달 https://www.acmicpc.net/problem/15686 2580 스도쿠 https://www.acmicpc.net/problem/2580 1062 가르침 https://www.acmicpc.net/problem/1062 1759 암호 만들기 https://www.acmicpc.net/problem/1759 백트래킹 특징 재귀를 이용해야 한다. 반복문이 가지 뻗듯이 많이 생길 것 같은 문제 백트래킹 풀이 방법 재귀 함수의 종료 시점 부터 지정한다. 대체로 종료 시점 지정 후 for문이 등장한다. for문 안에 각각의 경우에 대해 값을 바꿔가며 재귀함수를 호출한다.. 이전 1 ··· 7 8 9 10 11 12 다음