728x90
반응형

전체 글 121

[Javascript] Object생성과 Property접근하기

Object(객체) 객체는 Property로 구성되는데 메소드와 변수 등이 key에 할당될 수 있다. Object 생성 객체 리터럴을 사용하여 만든다. 객체 리터럴이란 {}(중괄호)안에 key와 value의 목록들을 의미한다. var Test = { First : "인공지능", Second : "소스2", Third : '컴파일러' }; new 키워드를 사용하여 만든다. var test = new Object(); test.First = '인공지능'; test.Second = '소스2'; test.Third = '컴파일러'; //이렇게 property를 생성하고 수정하는것도 가능 test[Fourth] = '개발'; 프로퍼티 (Property) 프로퍼티는 객체에서 key와 value를 묶어서 말한다. k..

카테고리 없음 2021.10.12

[React] setState를 사용하는 이유 (feat. setState 사용법)

강의를 들으며 코드를 따라치기만 바빴다. 이제는 시험기간이니깐 react를 공부해보려고 한다. state의 값이 변경되면 state를 관리하는 컴포넌트의 render함수가 다시 호출된다.그리고 render함수가 가지고 있는 하위의 컴포넌트들의 각 render함수도 다시 호출된다. 아마 react는 단방향 연결이어서 이를 통해 상위 component와 연결을 하는것 같다. 즉 props나 state의 값이 바뀌면 화면이 다시 그려진다. 이런 componet의 state는 setState를 이용해서 바꾸어야 한다. 직접 값을 바꾸게 되면 렌더링이 되지않고 setState를 통해서 바꾸는 것만 렌더링이된다. 즉 이 말은 setState를 통해 바꿔야만 화면에 표시된다는 말이다. this.state.greeti..

카테고리 없음 2021.10.11

[React] import export 사용하기 (feat. export default 사용 )

Export 하기 모듈을 export하는 방법은 어렵지 않다. export하길 원하는 함수나 변수 앞에 export를 붙여주면 된다. export const countries = ["한국", "일본", "중국"]; export const midtermTest = () => console.log("Oh My God"); export function helloWorld() { console.log("helloWorld"); } //이 코드는 Test.js 파일에 적혀져 있다고 하자 변수와 함수에 하나씩 export를 붙여주는게 귀찮다면 다음과 같이 한번에 export 해줄 수 있다. const countries = ["한국", "일본", "중국"]; const midtermTest = () => consol..

카테고리 없음 2021.10.10

[인공지능] Local Search (feat. Hill Climbing)

이전까지는 탐색공간을 체계적으로 탐색했다. 따라서 문제의 solution까지 도달하는 경로까지도 구할 수 있었다. 하지만 경로가 필요없는 문제도 존재한다. 이럴 때는 다른 알고리즘을 사용할 수 있는데 여기선 Local Search의 Hill-climbing 방식을 알아보도록 하겠다. Local Search and Optimization Local Search는 다음과 같은 특성을 가진다. 다른 state를 기억하지 않고 오직 현재 state만 알고있다. 따라서 stack, queue와 같은 다른 자료구조를 사용하지 않는다. 그리고 위와 같은 특성때문에 Memoryless Search라고 불린다. 인접 state로만 움직인다. 경로를 무시한다. Local Search의 장점 메모리 사용량이 적다. 탐색공간..

카테고리 없음 2021.10.09

[인공지능] Informed Search (Heuristic Search)

지난시간에 Uninform Search을 배웠다. 현재 상태와 목적지의 정보를 갖지않고 상태공간을 탐색을 탐색하였다. Informed Search는 목적지와 현재 상태 정보를 가지고 Goal에 다가가기 좋은 방향으로 탐색한다. (Heuristic 함수 사용) 참고로 Informed Search는 Heuristic Search라고도 불린다. Informed Search 개요 Informed Search는 Uninformed Search의 한계를 보안하기 위해 나왔다. Informed search는 효율성을 향상시키기위해 문제마다 heuristic 함수를 사용하고 다음과 같은 방법들이 있다. Best-first A* 또한 이번글의 마지막 부분에서 heuristic을 만드는 기술도 알아볼 것이다. worst ..

카테고리 없음 2021.10.08

[인공지능] Uninformed Search (Exhausitive Search)

Uninformed Search란 여러가지 문제를 해결하기 위한 탐색 기법 중 하나로 사전정보를 갖지 않고 탐색하는 알고리즘 기법이다. Uninformed Search는 Blind search라고 불리며 Informed Search랑 비교된다. Blind Search라고 불리는 이유는 현재 node에서 Goal node까지의 거리(heuristic value)를 알지 못하기 때문에 Blind Search라고 불린다. 만약 현재 위치에서 Goal node까지의 거리 혹은 heuristic value를 안다면 Informed search라고 한다. Uninformed Search에는 다음과 같은 알고리즘이 있다. Breadth-first Search Depth-first Search Iterative dee..

카테고리 없음 2021.10.07

[Algorithm] 백준 16282 - Black Chain 풀이 (feat. pow 문제점)

풀이 일단 시간제한이 0.1초이기 때문에 규칙을 찾는 문제라는것은 이해하였다. 규칙을 찾기 위해서는 직접 써가면서 푸는것이 나에겐 가장 효과적이다. n = 1일 때, (즉 고리를 한 개 끊을 경우) X 1 Y 라고 생각할 수 있다. (X와 Y는 고리의 개수) 이제 여기서 생각을 해보자 1은 만들 수 있고(잘라진 chain으로 1g 만들기) 2부터 만들 수 없다. 따라서 X = 2이다. X가 2이면 1, 2, 3(1 + 2)g 까지 만들 수 있다. 이제 만들지 못하는 것은 4g 부터이다. 따라서 Y= 4g. n = 1일때 7g까지 만들 수 있다. 1, 2, 3(2 + 1), 4, 5(4 + 1), 6(4 + 2), 7(2 + 1 +4) n = 2일 때, (즉 고리를 두 개 끊을 경우) A 1 B 1 C 라..

Algorithm 2021.09.30

[Algorithm] 백준 11066 - 파일 합치기 풀이

풀이 처음문제를 읽고 허프만 코드를 만드는것 처럼 priority queue를 이용해 구현하였다. 하지만 제대로 된 답이 나오지 않았고 찾아보니 소설의 chapter를 인접한 페이지끼리만 합치는것이었다. 그 후 문제를 이해하고 DP라는 것 까지 알았지만 코드를 짜는것이 쉽지않다. dp[i][j] = i번째 장부터 j번째 장까지 합치는데 드는 최소한의 비용. dp[i][j] = min{dp[i][k] + dp[k+1][j]} + sum[end] - sum[start-1]. 단, (start

Algorithm 2021.09.29

[Algorithm] 백준 11068 - 회문인 수 풀이

풀이 브루투포스 알고리즘으로 푸는 문제이다. 따라서 for문을 통해 각 진법으로 바꾸고 거꾸로 뒤집어도 회문인 수인지 판별 해주면 되었다. 처음에 각 진법으로 변환할때 문자를 이용해 비교하려고 하였으나 그냥 나머지 값이 같은지 비교하도록 하였다. 코드 #include #include #include #include using namespace std; int main() { int t; scanf("%d", &t); while(t--) { int n; scanf("%d", &n); vector v; v.clear(); bool flag = true; for(int b = 2; b

Algorithm 2021.09.29

[Algorithm] 백준 11062 카드게임 풀이

21.11.14일 추가함. 문제를 보고 인공지능 시간에 배운 게임이론이라는 것을 알았다. min max 트리를 그려서 풀려고 했는데 역시 이론만 아는것이랑 실제 코드를 짜는것은 다르다는것을 느꼈다.. 그리고 재귀 호출시에 vector를 복사해주었는데 이부분에서도 시간초과가 발생하였다. 사소한 것이라 생각했지만 문제풀이에 크게 차이난다는 것을 느꼈다. 이번 문제에서 알게된 것 재귀함수 호출시에 배열, 벡터 등의 값을 복사할 떄는 시간과 메모리 공간이 많이 소모되기 때문에 레페런스로 호출해주도록 한다. 이론을 아는것과 구현은 다르다. min max 알고리즘(게임이론)에서 나를 기준으로 보고 상대의 점수가 min이 되도록 선택하도록 해야한다. dp[left][right]는 내가 얻을 수 있는 점수이기 때문에 ..

Algorithm 2021.09.25
728x90
반응형