본문 바로가기

전체 글

[임베디드] 심볼 SYMBOL 임베디드 레시피 블로그 요약본입니다 SYMBOL linker가 알아볼 수 있는 기본 단위 Link이후 자신만의 주소를 갖게 됨. symbol의 이름은 그 Symbol이 갖는 메모리 영역의 시작주소를 가리키는 linker만의 pointer ELF object file 내에 symbol table 존재 Linker만이 symbol을 참조하며 linker는 Symbol들을 모두 주소로 변환해서 binary로 만듬-> 실제로 메모리에 올라가지 않음 결국 자기 자신만의 주소를 갖는 단위 Global과 SYMBOL Global에는 함수, 전역변수, static변수 Local에는 나머지들 Global은 자기 자신만의 주소를 갖는다는 점에서 SYMBOL 고유 주소를 갖기 때문에 다른 파일에서도 접근 가능 RW, ZI,.. 더보기
[python] pip install ssl문제 출처: https://harryp.tistory.com/831 [Park's Life] 작업환경 파이썬 3.7 아나콘다3 프롬프트 가상환경 activate ( conda create -n tutorial python = 3.5 numpy scipy matplotlib spyder pandas seaborn scikit-learn h5py) pip install tensorflow를 했더니 ssl에러가 난다. 해결 pip옵션에서 --trusted-host옵션 사용 pip에서 라이브럴를 다운받는 서버인 pypi.org 그리고 files.pythonhosted.org 를 옵션으로 지정뒤 install pip --trusted-host pypi.org --trusted-host files.pythonhosted.. 더보기
[C++]상속, 생성자 예제 코드 -1 Manger클래스가 Employee클래스를 상속받을때 생성자 호출에 관한 코드이다. 멤버 변수와 멤버 함수들이 어떻게 오버라이딩 되는지 위한 연습이다. 첫번째로 클래스 멤버 변수(rank_)의 초기값을 1로 설정하였다. 이러면 따로 rank_값을 설정하지 않으면 rank: 1이된다. 두번째로 초기화 리스트를 사용하여 디폴트생성자(Employee() : rank_(3) {}을 해주었다. 이러면 디폴트 생성자가 호출될 경우 rank: 3이된다. 초기화 리스트는 생성과 동시에 초기화를 해주는데 c++에서 상수와 참조자(&)는 생성과 동시에 초기화를 해야 하기떄문에 쓴다. 세번째로 Manager(Manager(char * name)생성자가 생성될때 호출될 Employee 클래스의 생성자를 따로 설정하지 않아서 .. 더보기
[Algorithm] DFS recursive구현 DFS를 재귀함수로 구현하였다. DP하려다 보니 재귀함수를 좀 잘 알 필요가 있어서 한번 구현하고 넘어갔다 pos구조체 만드니까 더 지저분해졌다. 더보기
[Algorithm] 백준 2178_bfs 문제 bfs 문제를 풀어보았다. 일반 bfs문제에서 탐색할때 깊이를 같이 출력하는게 살짝 꼬아진 부분이다. 더보기
[Algorithm] 다익스트라 알고리즘 도착지 까지 최단 거리를 구하는 다익스트라 알고리즘이다. greedy알고리즘을 통해 구하고 수학적 귀납법을 통해 증명 가능하다. "가정이 방문한 꼭짓점이 n-1일 때 성립한다고 가정하자. 이 경우에, 모든 미방문 꼭짓점에서 dist[u]가 가장 작은 u에 대해서 dist[u] = dist[v] + length[v,u]을 만족하는 변 vu를 선택한다. dist[u]는 source에서 u까지의 가장 짧은 거리로 볼 수 있다. 만약 그 경로보다 더 짧은 경로가 있고, 그 경로의 첫 번째 미방문 꼭짓점을 w라고 한다면 처음의 가정인 dist[w] > dist[u]에 의해서 모순이 생긴다. 이와 비슷하게, u로 가는 경로 중 미방문 꼭짓점을 지나지 않는 더 짧은 경로가 있고, 그 경로의 마지막 꼭짓점이 w라고 한.. 더보기
[Algorithm]그래프 입력받기 많은 알고리즘 문제들은 그래프 기반이다 그래프를 입력받는 방법은 크게 두가지가 있는데 1. 인접행렬을 이용하여 연결관계를 나타내는 방법과 2. 링크드 리스트를 통해 그래프를 나타내는 것이다. 이 중 두번째 리스트를 이용한 그래프 입력을 구현해 보았다. 문제를 풀기 위해 우선순위 큐 선언이 들어가 있는데 무시해도 좋다. 입력은 다음과 같다 노드수, 간선수 시작 노드 출발노드 도착노드 가중치 출발노드 도착노드 가중치 출발노드 도착노드 가중치 ... 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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 .. 더보기
[Algorithm] dynamic programming-1 rod(막대기)문제 [메모이제이션과 동적계획법] 메모이제이션은 미리 계산한 캐시값을 이용한 최적화 기법이다. 동적 계획법은 하위 문제에서 계산한 값을 재귀 내지는 반복적으로 문제 풀이에 사용하는 기법이다. 주로 table작성(tabulation기법)을 활용 하지만 메모이제이션 방법을 사용 하기도 한다. 메모이제이션과 동적계획법은 어느 한쪽이 서로에게 속하는 관계가 아니다. [메모이제이션과 tabulation] tabuation은 bottom-up방식으로 상위 문제를 풀기위해 하위문제의 모든 값을 필요로 할떄 유용하다. memoization은 top-down방식으로 이미 푼 문제의 값을 저장하고 있는 것이다. top down의 의미는 top단의 문제부터 푼다는 의미이다. f(7)값을 구한다 치면, tabulation은 f(1.. 더보기