목록전체 글 (265)
SW
0. 제목 백준 11725 트리의 부모 찾기 BOJ 11725 트리의 부모 찾기 C++ 11725 트리의 부모 찾기 1. 문제 https://www.acmicpc.net/problem/11725 2. 풀이 DFS를 이용하였다. 먼저, vector를 이용해 양방향으로 모두 연결시켜주었다. DFS를 하면서 나아가려는 방향의 노드가 아직 방문하지 않은 상태라면 그 노드를 탐색하게 되고 그와 동시에 방금 있었던 노드를 새로 간 노드의 부모로 설정해주었다. 루트가 1이므로 1부터 DFS를 실시하고 2번 노드의 부모부터 차례로 출력해주면 된다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ..
0. HTML 엘리먼트와 네이티브 컴포넌트의 유사성 리액트 네이티브에서는 HTML 엘리먼트를 사용하지 않고, 이와 매우 유사하면서 다양한 컴포넌트를 사용한다. HTML 리액트 네이티브 div img span, p ul/ol, li , 자식 아이템 이 엘리먼트들은 비록 서로를 대체할 수는 없지만 아주 비슷한 용도로 쓰인다. 1. 컴포넌트 텍스트 렌더링은 매우 기본적인 기능이다. HTML에서는 다양한 엘리먼트(, 등)로 텍스트를 표시할 수 있다. 리액트 네이티브에서는 컴포넌트만이 플레인 텍스트 노드를 자식으로 가질 수 있다. 리액트 네이티브에서 컴포넌트를 다룰 때는 , 같은 하위 태그를 사용할 수 없으나 fontWeight, fontStyle 속성을 이용하여 비슷한 효과를 낼 수 있다. 리액트 네이티브에서 ..
0. 환경설정 리액트 네이티브 개발 환경 설정 방법은 크게 두 가지로 나눌 수 있다. 하나, 매우 빠르고 쉽게 설정이 가능한 Create React Native App이라는 도구를 사용하는 방법이다. 둘, 아주 전형적인 방법으로 리액트 네이티브와 그 dependency까지 모두 설치하게 되는 방법이다. 1. 개발 환경 설정: Create React Native App Create React Native App은 Xcode나 안드로이드 스튜디오를 설치할 필요 없이 리액트 네이티브 앱을 생성하고 실행할 수 있게 해주는 커맨드 라인 도구이다. npm을 이용하여 create-react-native-app 패키지를 설치한다. 리액트 네이티브는 npm을 이용하여 dependency를 설치한다. npm install..
0. 제목 백준 2869 달팽이는 올라가고 싶다 BOJ 2869 달팽이는 올라가고 싶다 C++ 2869 달팽이는 올라가고 싶다 1. 문제 https://www.acmicpc.net/problem/2869 2. 풀이 제한시간이 짧기 때문에 for문으로 풀면 시간초과가 나온다. 다른 방식 풀이는 다음과 같다. 하루에 A-B 만큼 올라갈 수 있다. 도달하는 날에는 미끄러질 필요가 없는 것을 고려하여 식을 세운다. V-A 만큼 가면 도착이다. 따라서 V-A까지 A-B 씩 가는 것이다. V-A가 A-B로 나누어 떨어지지 않으면 높이에서 하루 가는 거리를 나눈 값에서 하루를 더해주고 나누어 떨어지면 그대로 높이에서 하루 가는 거리를 나눈 값을 출력해준다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 ..
0. 제목 백준 11651 좌표 정렬하기 2 BOJ 11651 좌표 정렬하기 2 C++ 11651 좌표 정렬하기 2 1. 문제 https://www.acmicpc.net/problem/11651 2. 풀이 vector의 sort기준인 comp함수식만 잘 세우면 되는 문제이다. 좌표쌍을 vector에 넣어줘야 하므로 make_pair를 사용하였다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include #include #include using namespace std; typedef pair P; int N; vector v; bool comp(P a, P b){ if(a...
0. 정적인 웹페이지 만들기 Redux를 도입하기전 간단한 웹페이지를 만든다. 1. 부품화 각각의 기능에 대해 모듈화를 시킨다. 2. store 생성과 state 사용하기 store를 생성하고 state를 사용한 코드이다. 결과는 처음과 같지만 reducer내부에 있는 contents의 내용을 바꾸면 그에 해당하는 코드들이 전부 바뀐다는 점이 다르다. 3. action을 dispatch를 통해서 전달하기 store의 state값을 변경하기 위해서 action을 발생시키고 action이 dispatch를 통해서 reducer를 실행시키면 state의 새로운 값을 return 한다. state값이 바뀌면 subscribe하고 있는 함수들을 호출해줌을 통해서 ui가 업데이트된다. event.preventDef..
0. 시간여행과 로깅 먼저 아래 깃헙에 들어간 후 Chrome용 Redux 개발자 툴을 설치하였다. https://github.com/zalmoxisus/redux-devtools-extension zalmoxisus/redux-devtools-extension Redux DevTools extension. Contribute to zalmoxisus/redux-devtools-extension development by creating an account on GitHub. github.com 아래 빨간 테두리 내에 있는 것을 복사해서 코드에 붙여 넣는다. 위와 같이 코드를 작성 후 실행시키면 Redux 개발자 도구를 볼 수 있다. 주의할 점이 file://~~ 이런식으로 브라우저에서 열면 Redux개..
0. reducer와 action을 이용해서 새로운 state 값 만들기 state를 바꾸기 위해선 action을 만들어야하고 그것을 dispatch에 제출하면 dispatch가 reducer를 호출하는데 그때의 이전의 state값과 action값을 동시에 준다. 그러면 reducer함수가 그것을 분석해서 state의 최종적인 값을 return해준다. store.dispatch({type: '~~~'}) ---> dispatch를 사용할 때 type은 반드시 있어야 한다. dispatch는 store를 생성할때 제공한 reducer라는 함수를 호출하도록 약속되어있다. 위와 같이 코드를 작성한 후 state와 action값을 알아보기 위해 console.log(state, action) 을 실행해보았다. ..
0. 제목 백준 1003 피보나치 함수 BOJ 1003 피보나치 함수 C++ 1003 피보나치 함수 1. 문제 https://www.acmicpc.net/problem/1003 2. 풀이 dp방식을 사용하였다. dp[i][0]은 i 번째 수 계산 시 나오는 0의 개수이고 dp[i][1]은 1의 개수이다. i가 0, 1일때 초기값을 지정해주고 dp[i][k] = dp[i-1][k] + dp[i-2][k] 를 수행해주면 0과 1의 개수를 구할 수 있다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include using namespace std; int main(int argc, const char * argv[]) { int..
0. 제목 백준 14501 퇴사 BOJ 14501 퇴사 C++ 14501 퇴사 1. 문제 https://www.acmicpc.net/problem/14501 2. 풀이 dp방식을 사용하였으며 dp배열의 원소값을 0으로 모두 초기화 하고 시작하였다. 만약 일을 진행하는데 주어진 날보다 초과되면 dp[i+1] 값을 해주면 된다. 초기에 0으로 초기화해주었기 때문에 N이 초과되어도 0으로 갱신이 가능하다. 주어진 날 내에 끝낼 수 있다면 dp[i] = max(dp[i+T[i]] + P[i], dp[i+1]); 을 수행해준다. 위 점화식을 풀어 설명해보면 dp[i+T[i]]+P[i] 는 i번째 상담을 수행하면 T[i]일간 상담을 못하고 P[i]의 금액을 얻을 수 있고, dp[i+1]은 i번째 상담을 수행하지 않..