728x90
반응형

전체 글 115

[Algorithm] 백준 2096 내려가기 문제풀이(Feat. 메모리초과, 메모리 계산법)

내 생각 다이나믹 프로그래밍에 점화식은 바로 세울수 있었다. 너무 기쁜나머지 메모리에 대한 에러를 해결하는데 오래걸렸다... 하나가 되면 하나가 안되는 매직. 아이디어는 떠올렸으니 메모리 제한에 대해 계산하는 법을 정리하겠다. 메모리 계산하기 대략적인 메모리 계산법은 다음과 같다. 1MB = 1000KB 1KB = 1000byte 따라서 1MB = 1000000byte이다. 과연 1MB에서 int형 배열은 몇개까지 선언할 수 있을까?? int는 4바이트이기 때문에 1000000/4 = 250000개 선언할 수 있다. 코드 #include #include #include #include #include using namespace std; int dp_max[3],dp_min[3]; int max(int ..

Algorithm 2021.11.12

[VMware] VMware Fusion에 설치된 Ubuntu 디스크 삭제하기

Ubuntu 18.04를 사용중에 있었는데 뭘 잘못 만졌더니 부팅이 제대로 되지 않았다.. 다행히 파일들은 github에 올려놓았고(아마도...?) 그냥 ubuntu를 새로 다운받기로 결심했다. 삭제 방법 삭제하는 법은 매우 간단했다. VMware의 Window 메뉴 > Virtual Machine Library를 클릭한다. 가상머신에 다운로드된 여러 디스크들이 있을텐데, 삭제하고 싶은 것을 마우스 우측클릭 후에 Delete를 누른다. 다음과 같은 알림창이 뜰텐데 Move to Trash를 누르면 Ubuntu와 그 파일들이 모두 날라가게 된다.

카테고리 없음 2021.10.18

[Javascript] spread와 rest 문법 사용하기 (feat. ...문법)

spread와 rest는 서로 생김새는 비슷하게 생겼지만 다르게 사용된다. spread spread 문법은 새로운 객체 혹은 배열에 이전에 만들어 놓은 공통 부분을 추가하려고 할때 많이 사용한다. 예를 들어서 다음과 같은 객체들이 있다고 가정해봅시다. const countryA = { name1: '한국' }; const countryB = { name1: '한국', name2: '일본' }; const countryC = { name1: '한국', name2: '일본', name3: '중국'}; 이 코드에는 countryA라는 객체를 선언하고 나머지 객체는 기존에 선언한 것을 추가로 선언한 것이다. 즉 기존의 것은 수정하지 않고 새로운 객체를 만드는데 이전의 만들어진 객체와 똑같은 내용이 들어가 있다는..

카테고리 없음 2021.10.17

[Javascript] destructuring( 구조분해할당 ) 사용법 (feat. object, array)

destructuring 은 array나 object에서 값(value)과 프로퍼티(property) 를 분해하여 새로운 변수에 담을 수 있게 해준다. Array 에서의 구조 분해 할당 기본형태 다음과 같이 할당받을 변수를 왼쪽에, 분해할 대상을 오른쪽에 해서 대입하는 형식으로 작성하면 된다. 배열 [1, 2] 이 destructuring 되어 각각 num1, num2 변수에 할당되었다. let [num1, num2] = [1, 2]; console.log(num1); 출력 : 1 이전에 선언된 배열에서 destructuring하는것도 가능하다. let arr = [-1, 0, 1]; let [negative, zero, positive] = arr; console.log(zero); 출력 : 0 de..

카테고리 없음 2021.10.13

[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
728x90
반응형