본문 바로가기

프로그래머

[알고리즘] 그래프, DFS, BFS 간단 정리 본 포스팅은 백준 알고리즘 강의 기초2 자료를 바탕으로 작성하였습니다. 그래프 정점(Node, Vertex) 간선(Edge) : 정점간의 관계 G = (V, E) Path Cycle Directed Graph Undirected Graph Multiple Edge Loop : 간선의 양 끝점이 같은 경우 Weight Degree : 정점과 연결되어 있는 간선의 개수 방향 그래프의 경우 In-degree(들어오는), Out-degree(나가는)로 나누어서 차수를 계산 그래프의 표현 정점 : {1,2,3,4,5,6} 간선 : {(1,2), (1,5), (2,5), (2,3), (3,4), (2,4), (4,5), (4,6)} 인접 행렬(Adjacency-matrix) 이차원 배열 이용 A[i][j] = 1 .. 더보기
[파이썬] 파이썬 정리 for me (feat. FastCampus) ###파이썬 간단 정리 본 내용은 패스트캠퍼스 파이썬 기초 내용을 요약정리한 것입니다. 텍스트 입력에서... **python** is really *cool* - python - pandas - depth1 - depth2 - numpy - java - c++ - golang 1. python 2. java 3. c++ > 파이썬은 재밌다고 하더라... $y = 3x$ 위아래 ```을 붙이면 코드 형태로 출력 a = 10 print(a) 링크 만들기 [파이썬 공식 페이지] https://www.python.org [파이썬 공식 페이지] https://www.python.org 함수의 이해 및 활용, 기본 파라미터, 키워드 def add(x,y): n = x+y return n 파라미터가 필요 없는 경우 .. 더보기
[강화학습] 2. 강화학습 기초 | MDP | 가치함수 | 벨만 방정식 강화학습 기초 강화학습은 순차적으로 행동을 결정해야 하는 문제를 푸는 것이다. 이를 수학적으로 표현한 것이 MDP이다. MDP는 상태, 행동, 보상함수, 상태 변환 확률(state transition probability), 감가율(Discount Factor)로 구성 상태 변환 확률 : 환경의 변화가 상태에 미치는 영향을 확률로 표현 영향을 미치지 않는 경우 상태 변환 확률은 1 상태 상태는 '자신의 상황에 대한 관찰'을 말한다. 로봇과 같은 실제 세상에서의 에이전트에게 상태는 센서 값이 된다. 행동 보통 에이전트가 할 수 있는 행동은 모든 상태에서 같다. 보상함수 보상은 에이전트가 학습할 수 있는 유일한 정보로서 환경이 에이전트에게 주는 정보이다. 보상함수는 s 상태와 a 행동일 때 받을 보상에 대한.. 더보기
[강화학습] 1. 강화학습 개요 강화학습의 개념 강화라는 것은 이전에 배우지 않았지만 직접 시도하면서 행동과 그 결과를 나타내는 좋은 보상 사이의 상관관계를 학습하는 것이다. 강화의 핵심은 바로 보상을 얻게 해주는 행동의 빈도 증가이다. 강화학습은 보상을 통해 학습한다. 보상은 컴퓨터가 선택한 행동(action)에 대한 환경의 반응이다. 이 보상은 직접적인 답은 아니지만 컴퓨터에게는 간접적인 정답의 역할을 한다. 에이전트(agent) 강화학습을 통해 스스로 학습하는 컴퓨터를 에이전트라고 한다. 에이전트는 환경에 대해 사전지식이 없는 상태에서 학습한다. 에이전트는 자신이 놓인 환경에서 자신의 상태를 인식한 후 행동한다. 환경은 에이전트에게 보상을 주고 다음 상태를 알려준다. 이 보상을 통해 에이전트는 어떤 행동이 좋은 행동인지 간접적으로.. 더보기
[수강 후기] 패캠 딥러닝/인공지능 올인원 패키지 | 속지마세요 | 패스트캠퍼스 온라인 강의 패스트캠퍼스 딥러닝/인공지능 올인원 패키지 온라인 강의 수강 후기 필자는 현업에서 인공지능 관련 업무를 하고 있다. 하지만 역량이 충분치 않아 따로 공부를 하고 있다. 패스트 캠퍼스는 이전부터 알고 있었지만, 백만원이 넘는 오프라인 강의는 금액적으로 부담이 되었다. 마침 패스트 캠퍼스에서 3개의 온라인 패키지를 묶어 20만원에 평생 들을 수 있게 한 프리패스 수강권을 판매했다. 딥러닝/인공지능 올인원 패키지를 포함한 3개의 패키지를 결제했다. 현재 딥러닝/인공지능 올인원 패키지의 절반 정도를 수강했고, 그에 대한 후기를 남긴다. 우선, 패스트 캠퍼스 홈페이지를 들어가보면 현란한 문구를 볼 수 있다. 마치 이번 달까지 결제를 못하면 다시는 할인이 없을 거라는 예감이 든다. 결론부터 말하면, 급하게 생각하지.. 더보기
백준 온라인 저지(BOJ) 3085번 - 사탕 게임 백준 온라인 저지(BOJ) 3085번 - 사탕 게임 경우의 수 NxN 크기의 테이블에 사탕이 있다 (N (N^2) * 2 의 경우의 수 (정확히는 (N-1)^2 * 2) 처음 고른 칸의 오른쪽, 아래쪽을 인접한 칸이라고 가정 같은 색으로 이루어져 있는 가장 긴 연속 부분 행 또는 열을 고름 -> O(N^2) 해답 #include #include #include using namespace std; int check(vector &a){ int n = a.size(); int ans = 1; for(int i=0; i a[i]; } int ans = 0; for(int i=0; i 더보기
백준 온라인 저지(BOJ) 2309번 - 일곱난쟁이 백준 온라인 저지(BOJ) 2309번 - 일곱난쟁이 경우의 수 아홉 난쟁이의 키가 주어진다. 아홉 난쟁이 중 일곱 명을 고르는 것은, 아홉 명 중 두 명을 고르는 것과 같다. 따라서 경우의 수는 9x8 = 72가지. 다 해보면 된다. 해답 #include #include using namespace std; bool check(const int* data, const int i, const int j){ int sum = 0; for(int a=0; a data[i]; } sort(data, data+9); // for(int i=0; i 더보기
백준 <알고리즘 기초 1/2> 강의 후기 알고리즘 자료구조/알고리즘은 나 같이 비-컴공 출신의 소프트웨어 엔지니어에겐 넘어야 할 산이다. 코딩을 하는데 기초체력 역할을 할 뿐만 아니라, 나중에 이직시 유명한 기업의 IT직군은 대부분 코딩테스트를 하기 때문이다. 본인은 백준 알고리즘 기초 강의를 수강 완료 후 현재 다니는 회사의 SW 테스트를 통과하는 것을 1차 목적으로 하고 있으며, 알고리즘 기초 1 강의가 끝나가는 시점에서 본 리뷰를 작성한다. Backjoon Online Judge 본 강의는 백준 온라인 저지 사이트의 탭으로 들어갈 수 있다. 참고로 백준 온라인 저지는 우리나라에서 가장 유명한 알고리즘 문제풀이 사이트 중 하나이다. 특히 이 강의는 백준씨가 직강을 하시기 때문에 왠지 믿음이 간다. 백준 온라인저지로 바로가기 사이트에 들어가서.. 더보기
ReactJS - Loading States | NomadCoders | 프로그래밍 공부 * 이 포스팅은 Nomad Coders의 강의를 들으며 내용을 정리한 것이며, 모든 내용은 https://academy.nomadcoders.co/ 에서 보실 수 있습니다.* 우리가 필요한 데이터가 항상 존재하지는 않을 것이다.데이터 없이 컴포넌트가 로딩을 하고,데이터를 위해 API를 불러서,API가 데이터를 주면,컴포넌트 state를 업데이트 할 것이다. 자, 이제 API콜을 타임아웃 기능으로 유사하게 구현해보자.이를 위해, 영화리스트를 function 내부로 이동한다.이제 state 내부는 텅 비어있다.이제 함수는 영화가 나타나기를 5초를 기다릴 것이다.이 에러를 확인해보면, state.movie가 존재하지 않음으로 인해 property 'map'이 정의되지 않았다고 나온다.여기서 map을 돌리려고 .. 더보기
ReactJS - this.setState() 연습 | NomadCoders | 프로그래밍 공부 * 이 포스팅은 Nomad Coders의 강의를 들으며 내용을 정리한 것이며, 모든 내용은 https://academy.nomadcoders.co/ 에서 보실 수 있습니다.* 이번 포스팅에서는 컴포넌트 외부에 있는 무비 리스트를 state 안으로 옮겨보자.컴포턴트 외부에 있는 무비 리스트를 삭제하고, state 안에 붙여넣는다.그러면, 에러메시지; 'movie'는 정의되지 않았다고 뜬다.왜냐면 컴포넌트가 movies를 더이상 찾을 수 없기 때문이다.그래서 movies 앞에 this.state. 를 붙여주자.저장, 새로고침을 하면 이전과 동일.이전 시간 작업한 greeting을 삭제하고,이제 기존 영화 리스트에서 한 개의 영화를 더 추가하는 작업을 하자. componentDidMount() 밑에 timeo.. 더보기