에이전트란? 특정 환경 내에 위치하여, 설계된 목적을 만족시키기 위하여, 자율적으로 유연하게 행동할 능력이 있는 컴퓨터 시스템 인공지능에서의 문제에 주체 지능형 에이전트란? 센서로부터 인지된 주변 환경을 인지하고 효과기를 통해 외부환경에 적절한 행동을 취할 수 있는 로봇/기계/소프트웨어 에이전트의 종류 Rational Agents Do right thing Simple Reflex Agents 당장의 정해진 규칙에 의해서 행동, 경험 활용 X Model based Reflex Agents 특정 상황에서 수행되는 행동의 영향력을 이해하고 환경을 모델링한다. Goal based Agents 행동을 실행하기 이전에 목적에 부합하는지 고려 Utility based Agents 과정을 중시할 수 있는, 효율성을 ..
인공지능이란? - 사람처럼 생각하고 사람처럼 행동하는 기계를 만드는 연구 인공지능의 역사 제 1기: 태동기(1943 - 1956) Turing Test : 사고하는 기계 제안 → 기계가 인간과 얼마나 비슷하게 대화할 수 있는지를 기준으로 기계에 지능이 있는지를 판별하고자 하는 테스트 인간의 사고(학습) 과정을 최초로 연결망을 통한 모델화 성공 Hebbian Learning Theory - 인간의 두뇌가 학습하는 과정을 신경세포가 어떻게 받아들이는지 설명하는 이론 SNARC: 최초의 신경회로망 컴퓨터 제 2기: 초기 관심기(1952 - 1969) Perceptron (F.Rosenblatt, 1957): a single layer artificial neural network, a FeedForward n..
링크 깃허브: https://github.com/crohasang/React-Practice GitHub - crohasang/React-Practice: 별점이 8.5점 이상인 영화들을 정렬해서 보여주는 사이트를 React를 활 별점이 8.5점 이상인 영화들을 정렬해서 보여주는 사이트를 React를 활용하여 구현하였습니다. - GitHub - crohasang/React-Practice: 별점이 8.5점 이상인 영화들을 정렬해서 보여주는 사이트를 React를 활용 github.com 사이트 접속: https://crohasang.github.io/React-Practice/ React App crohasang.github.io 만들게 된 계기와 과정 노마드코더의 'ReactJS로 영화 웹 사이트 만들기..
수영을 시작한 계기 지난 7월, 친구들과 같이 빠지를 가기로 약속했었다. 한 번도 빠지를 안 가봐서 인터넷으로 검색을 해보았는데, 조금만 삐끗해도 바로 호수에 빠져버리는 영상들을 보게 되었다. 비록 구명조끼를 입고 있어서 위험하지는 않았지만, 수영을 하지 못했던 내게는 저 상황이 너무 무서웠다. 그래서 조금이라도 물과 친숙해지면 덜 무섭지 않을까라는 생각이 들어서 수영 강습을 신청하였다. 처음에는 귀에 물이 들어가는 것조차 무서워서 한 달 동안 월, 화, 목, 금 아침 9시에 수영 강습을 받기로 했다. 내가 갔던 수영장은 강습 시작일이 따로 정해져있는 것이 아니라 매주마다 새로 참석하는 방식이라 빨리 강습을 시작할 수 있어서 좋았다. 맨 처음 수영장에 들어와서 일단 머리부터 물에 담그는 것부터 시작했는데..
링크 깃허브: https://github.com/crohasang/momentum_js GitHub - crohasang/momentum_js: 구글 크롬 확장 프로그램 모멘텀(Momentum)을 Javascript로 구현하였습니다. 구글 크롬 확장 프로그램 모멘텀(Momentum)을 Javascript로 구현하였습니다. Contribute to crohasang/momentum_js development by creating an account on GitHub. github.com 사이트 접속: https://crohasang.github.io/momentum_js/ Momentum crohasang.github.io 모멘텀(Momentum)이란 무엇인가? 모멘텀은 Chrome 웹스토어에서 설치가 가..
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 생각 사실 이 문제의 목적은 직접 최소 힙을 구현하라는 것이지만, C++에서는 STL priority_queue가 있어서 최소 힙을 직접 구현하지 않고도 문제를 풀 수 있다. C++에서 최소 힙을 사용하려면 아래와 같은 방식으로 선언해야한다. priority_queue pq; 코드 #include using namespace std; priority_queue pq; // 최소..
https://www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 생각 동일한 정수가 삽입될 수 있다. -> 중복이 허용된다. 최댓값과 최솟값을 삭제해야 한다. -> 정렬이 되있어야 한다. 그렇다면 STL multiset를 사용하면 편리하다. multiset을 사용하면 수를 중복해서 삽입할 수 있고, 자동으로 오름차순 정렬을 해준다. 그러므로 최솟값을 꺼내려면 iterator를 사용하여 set의 맨 왼쪽 부분(ms.begin() )을, 최댓값을 꺼내려면 se..
https://www.acmicpc.net/problem/13414 13414번: 수강신청 입력 데이터는 표준 입력을 사용한다. 입력은 1개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 과목의 수강 가능 인원 K(1 ≤ K ≤ 100,000)와 학생들이 버튼을 클릭한 순서를 기록한 대기목 www.acmicpc.net 생각 '처음에는 단순히 벡터에 값들 집어넣고, 중복한 값 넣으면 제거하고, 차례대로 출력하면 되는 거 아닌가?'라는 생각을 했었는데, 바로 시간초과가 떴다. 그래서 해시를 사용하는 unordered_set을 사용할까 고민했지만 unordered_set은 입력 순서를 보장해주지 않고 랜덤으로 출력된다는 문제를 가지고 있었다. 어떻게 하면 입력 순서를 보장할까 생각하던 중에, 해시를 사용..
useEffect()는 코드의 실행 시점을 관리할 수 있는 함수이다. useEffect()는 두 개의 argument를 가지고 있는데, 첫 번째 argument는 우리가 실행하고 싶은 코드가, 두 번째 argument에는 [] 배열(dependency)이 있다. 두 번째 argument에 무엇이 들어가느냐에 따라 실행 결과가 달라지는데, 1. 빈 배열을 넣는 경우 -> 최초 1회 랜더링 될 때만 실행한다. 2. [a] -> a가 변경될 경우만 랜더링한다. 3. [a, b] -> a나 b중 하나가 값이 변경 될 때 랜더링한다. useEffect()를 사용하여 불필요한 렌더링과 작업을 방지할 수 있다. 예시 코드 const onChange = (event) => setKeyword(event.target.v..
React에서 Props는 부모 컴포넌트로부터 자식 컴포넌트로 데이터를 전달하는 데 사용되는 매커니즘이다. 요소를 만들 때마다 스타일들을 작성해주는 것은 너무 시간이 오래 걸린다. 그 대신 스타일들을 모두 갖는 단 한가지의 컴포넌트를 만들어서 사용할 수 있다. Props 코드 예시 내가 만들고 사용하는 모든 컴포넌트들은 function Btn() -> 괄호로 argument(인자)를 받는데, 이 때 argument의 이름은 마음대로 지어줄 수 있다. 리액트가 실제로 하는 작업은 함수(Btn())를 호출해서 우리가 넣어둔 모든 것들을 첫 번째 인자로 넣어주는 것이다. Btn 컴포넌트의 prop들에게 접근하려면 prop.text 등으로 적어준다. React.memo() props에 function도 보낼 수..