-
[Dynamic Programming] 조약돌 문제
문제* 아래 문제의 recursive property를 제시하라. 3×N 테이블의 각 칸에 양 또는 음의 정수가 기록되어 있다. 조약돌을 놓는 방법 (제약조건)- 각 열에는 적어도 하나의 조약돌을 놓아야 한다.- 가로나 세로로 인접한 두 칸에 동시에 조약돌을 놓을 수 없다. 목표돌이 놓인 자리에 있는 수의 합을 최대가 되도록 조약돌 놓기 합법적인 예 합법적이지 않은 예 문제풀이 다이나믹 프로그래밍 - 행렬의 Column 1">11부터 Column i">i𝑖 까지의 최적해(=최고점)는 Column 1">11부터 Column i−1">i−1𝑖−1 까지의 최적해를 포함하는 구조이기 때문이다. 패턴 분석각각의 Column에 돌을 놓을 수 있는 경우의 수는, 아래와 같이 4가지로 존재한다...
-
연쇄 행렬 곱셈(Matrix Chain Multiplication) 알고리즘 - Dynamic Programming
연쇄 행렬 곱셈i × j 행렬과 j × k행렬을 곱하기 위해서는 i × j × k번 만큼의 곱셈이 필요하다.여러 행렬을 곱할 때, 어떠한 행렬 쌍을 먼저 곱하는지에 따라 연산 횟수가 달라진다. 연쇄 행렬 곱셈 동적 계획식 설계 전략재귀 관계식을 이용하여, 이전 단계의 계산을 이후 단계의 계산에 이용할 수 있다.i와 j사이에 있는 특정 값인 k를 사용하여 정답을 찾아간다연쇄 행렬 곱셈에서는 M[i,j] = min{ M[i,k] + M[k+1][j] + d(i-1)d(k)d(j)} 라는 식으로 문제를 해결하는데,i = j이면 이 자체로 하나의 행렬이므로 행렬곱은 0이고,i ex) i=i , j=2 일 때 -> k=1 (k는 하나) ex) i=1,j=3 -> k=1,k=2 (k는 두 개)-> 이 때, k..
-
React에서 Portone(포트원) 결제 연동하기(카카오페이)
# 배경하루네컷 서비스에서 결제기능을 맡게 되었다.결제 요청은 프론트에서 진행하고, 그것을 검증하는 단계를 백엔드에서 맡아주기로 했다. 우리가 진행한 방식은 아래와 같다 # 결제 연동 코드 작성 전 준비 단계결제 연동 코드를 작성하기 위해, 알고 있어야 할 정보가 있다. 1. 고객사 식별 코드(IMP)2. PG 상점 아이디(MID)테스트 용으로 채널 등록을 할 때, '일반 결제'를 선택했더니 제공되었다 # 포트원 라이브러리 추가- 공식 문서에는 리액트 메뉴얼이 없어서, 리액트로 변경했다. 코드는 다른께서 블로그에 잘 정리해주셔서 활용했다- useEffect 안에 스트립트를 넣었다. useEffect(() => { // 포트원 라이브러리 추가 let script = document.queryS..
-
React로 Pagination 구현하기
프로젝트를 진행하면서 데이터가 많아지면 페이지네이션(Pagination)이 필요하게 된다.라이브러리를 사용할 수도 있지만, 공부의 취지로 직접 구현해보기로 했다! 이번 포스팅에서는 React로 Pagination을 구현한 과정을 정리하려고 한다. 🌻 Pagination의 동작 구조Pagination의 전반적인 동작 구조는 네이버 블로그의 Pagination을 참고했다.1. 페이지 번호를 클릭하면 페이지가 변경된다. (URL의 쿼리 스트링 값이 업데이트된다.)2. 현재 페이지에는 active 디자인을 적용한다.3. 이전 및 다음 버튼은, 해당 방향으로 이동 가능한 페이지가 있을 때만 표시된다.4. 이전 버튼을 클릭하면, 이전 페이지 그룹의 마지막 페이지로 이동한다.5. 다음 버튼을 클릭하면, 다음 페이지..
-
[React Native] React Navigation
React Navigation React Native에서 네비게이션을 구현하는데 사용되는 많은 라이브러리들이 존재한다. 그 중 대표적인 것이 React Navigation이다. ( React에서 react-router-dom을 사용하여 라우팅을 구현한다면, React-Native에서는 React Navigation을 사용한다) React Navigation를 적용해보자 패키지 설치npm install @react-navigation/native npm install @react-navigation/stack 이제 이 네비게이션을 바탕으로 App.tsx를 수정해 보자import React from 'react'; import { NavigationContainer } from '@react-navigati..