pull request로 merge 깃헙에서 편하게 한 것프론트 백 분리ux - 처참모듈화 - app.py 에 너무 다 때려 박았다.깃 - 브랜치관리 안됨. 이슈발행못함. 깃크라켄사용 못함.디비 테이블 - 테이블 분리 안됨, 연관관계를 설계에만 적용함, not null
Linked List가 배열과 어떻게 다른지 비교하면 재밌을 것 같아서 오늘의 주제는 연결리스트이다.개념 이해하기구조 이해하기특성 알아보기비슷한 다른 자료형이랑 뭐가 다른지 비교해보기crud 어떻게 하는지 이해하기활용 방향수도 코드 작성해보기구현 코드 작성해보기(임계
9줄의 숫자를 입력받아 첫줄에는 최대값 두번째줄에는 해당 값이 몇번째였는지 출력하는 문제계속 런타임 에러가 나서 여러줄 입력을 받는 방법 찾아봤다.이 친구는 그냥 한 줄만 받을 줄 안다이 친구는 한번에 파일 끝까지(여러줄) 입력 받아서 리스트로 저장하는데 단점은 개행문
재귀함수의장점은코드가더깔끔하고이해하기쉬울수있다는것입니다.또한,반복문을사용하지않고복잡한문제를해결할수있습니다.그러나단점도있습니다.재귀함수는함수호출시메모리가추가적으로사용돼메모리소비가많으며,잘못사용하면스택오버플로우를일으킬수있습니다.또한,반복문에비해빈번한메모리할당/해제로실행속도
정의: 1과 자신 이외의 양의 정수로 나누어 떨어지지 않는 수응용: 소수 판별, 소수 나열, 소인수 분해, 최대공약수정의: 두 수의 가장 큰 공약수를 GCD, 가장 작은 공배수를 LCM이라고 함응용: 유클리드 알고리즘으로 GCD 계산, LCM(a,b) = a\*b/GC
총 세 문제 중 한 문제만 풀었다. 백준 1110번 https://www.acmicpc.net/problem/1110N = int(input())cnt=0result=Nwhile 1: if result<10: result = str(0)
너비우선탐색법은 1\. 출발점(source)로부터 도달할 수 있는 모든 정점을 '발견'하기 위해 간선을 체계적으로 탐색하고, 2\. 각 정점까지의 최단거리(가장 적은 간선으로 도달한 것)를 큐를 이용하여 계산하며, 3\. 너비우선트리(s를 루트로 하고 s에서 닿을 수
어제 BFS를 공부할 때는 알고리즘 벽돌 책을 먼저 정독하고 부족한 부분을 인터넷 자료로 보충했는데, 시간이 오래 걸린 기분이라 오늘은 반대로 인터넷으로 다른 사람이 이미 정리한 것부터 먼저 빠르게 정리하고 부족한 부분을 벽돌 책 읽을 예정이다.Depth-First S
리스트로 구현하면 v^2 = n^2, 인데 파이썬 라이브러리 우선순위큐 힙라이브러리 heapq쓰면 더 빨라짐 → nlogn됨(priority-queue보다 힙큐가 좀더 빠름)무조건 한지점에서 한 지점으로. 그리디에 해당되면서 DP, BFS에도 해당 됨n^3→ 행렬이 n
백준 최소 스패닝 트리 문제를 보면서 대부분 사람들이 크루스칼 알고리즘을 사용하는 것을 봤다. 백준문제-최소 스패닝 트리크루스칼, 프림 알고리즘은 최소신장트리(minimum spanning tree)를 만들고,다익스트라, 벨만포드 알고리즘은 최단거리를 구하는 알고리즘이
오늘은 트랙이 아니라 학교 밖을 뛰고싶어서 발이 가는대로 가다가 맥날을 발견해서 맥모닝을 픽업하고 돌아왔다.왕복 빨리뛰면 20분 천천히 뛰면 30분 거리라 이번주에는 이렇게 뛰어볼까 한다.
힙큐를 사용하지 않는 방법. 구현이 쉽지만 느린 O(V^2) 방법. 이것이 코딩 테스트다 책의 코드는 이해가 어려워서 아래 블로그에서 찾은 코드출처
DP는 큰 문제를 작은 문제들로 분할하여 그것을 이용해 큰 문제를 해결하는 방법입니다.분할정복과 다른점은 DP의 경우 작은 부분 문제의 답이 항상 같아야 한다는것 입니다.기본 개념 이해그리디 알고리즘이란?그리디 알고리즘(그리디 알고리즘, Greedy Algorithm)
맥날에서 커피 나오는 시간까지 총합 19분 걸렸다.
gcc 명령어는 소스코드를 executable code로 바꿔달라는 명령어.보고시프면 compiler explorer 보면 됨저 명령어가 내려지면 내부적으로는 아래와 같이 작동하게 된다.(주체 -> 결과물)C preprocesssor ->Compiler -> assem
N이 주어졌을 때 가능한 조합 개수 구하기.N = 1, 1N = 2, 00, 11N = 3, 100, 001n=1일때 조합 1개,n=2일때 조합 2개,n=3일때 조합 3개,n=4일때 조합 5개,,, -> 피보나치임을 알 수 있지만 본 문제에서로부터 규칙을 찾아보자.n이
모든 정점에서부터의 최단 경로를 찾는 알고리즘인데 간선이 끊어져 있는지 확인하기 위해서도 쓰임인접행렬두 시퀀스에 모두 들어있는 요소의 부분 시퀀스 중 가장 긴 것을 찾는 문제. dna 일치 얼마나 하는지 찾을 때 씀일단 기본
마지막에 return dpiprint(lcs((len_a-1), (len_b-1)))부분에서 이렇게 안하고print(dpi-1)이렇게 하는 방법도 있는데 이렇게 하는 것보다 디피 테이블에 저장을 하고 나서 그 데이터를 가져오는 방식이 더 낫다고 생각한다. 왜냐하면
꼬리재귀의 대한 교재 설명은 아래와 같다call stack으로 프로시저간의 호출을 안전하게 관리할 수 있다. x86-64 개발자들이 오랜 세월에 걸쳐 얻은 시행착오의 결과물이다.그래서 이 꼬래재귀를 최적화 시킨 함수와 일반 재귀와의 큰 차이점은 반환값에서 추가 연산을
참고블로그(https://hongcoding.tistory.com/83)현재 도시에서의 최소비용은 DP를 활용하고, 도시를 방문하는 것은 DFS를 활용.visited라는 변수에 2진수로 거친 도시를 표시하였다.0001(2) = 1 이라면 => 0번 도시만을 거
5 strategies 1. Don’t worry about what others are thinking >“You have no responsibility to live up to what other people think you ought to accomplish
레드블랙트리 의사코드 이진탐색트리 youtube
left_rotation 부터 format 다시 맞추기 rbtree following the psuedo new_rbtree(void) 이건 psudo code가 교재에 없다 Left/Right rotation psuedo code 수도코드 c언어로 옮기기 Ins
참고 youtube linkcase 4 - 더블리 블랙의 오른쪽 형제가 블랙 & 그 형제의 오른쪽 자녀가 red & 그 형제의 오른쪽 자녀가 black색바꿔주기회전하기회전 후 모습더블리 블랙을 모아서 위로 보낸다그랬더니 레드앤블랙 됨red and black은 색을 bl
내 답 문제점1\. 이렇게 해도 되는데 일단 첫번째로 틀린건 for문 안에 굳이 num+1아니라 걍 num 해도 됐었고,2\. 두번째로는 arri 아니라 떼고 arri += 1 이렇게 해야 에러가 안난다.내가 시도한 방법 : arr\[i] += 1배열로 또 다르게 하는
하면서 깨닳았는데 해당 노드가 가지고 있는 다음 노드를 가르키는 next pointer 를 사용해서 while문으로 하나씩 탐색하는거를 잘 못했다.정확히는 cur_node = cur_node->next; 그러니까 cur_node라는 포인터에 cur_node 다음 노드가
포인터로 들어오는 값이 NULL 일 경우를 생각해서 예외처리 하는 습관을 가져야겠다.변수명을 적절하게 직관적으로 잘 적어야 가독성을 둘째치고 구현을 할 때 헷갈리지 않는다.free() 함수는 메모리를 해제하고 값이 사라지는 것 아닌가? 근데 내가 리뷰한 코드에서 아래와
Malloc returns a pointer to a block memory of at least size bytes that is suitably alignedMalloc returns NULL and sets errno when progrma requests a b
주소 변환이 매우 간단하지만 단편화 문제가 많이 발생구현은 간단하지만 메모리 공간의 낭비라는 큰 단점을 가지고 있어 단편화가 발생한다.메모리에 적재되는 프로그램의 크기에 따라 분할의 크기, 개수가 동적으로 변하는 방식이다.프로세스에 딱 맞게 메모리 공간을 사용하기에 내
명지대학교 문대경 교수님 (UC Berkeley CS Ph.D., (전)넥슨 개발자)이 분은 뭘까. 네트워크 개념을 이렇게 재밌게 설명할 수 있다니 놀라움의 연속이었고(특히 서브넷) 시간가는 줄 모르고 들었다. 그런데 복습하지 않으면 다 휘발될 것만 같기에 정리를 해본
Socket 소켓은 네트워크 상에서 돌아가는 두 개의 프로그램 간 양방향 통신의 하나의 엔트 포인트입니다. 소켓에 대해 잘 정리된 블로그 https://on1ystar.github.io/socket%20programming/2021/03/16/socket-1/ so
Socket >socket이란 네트워크 상에서 돌아가는 두 개의 프로그램 간 양방향 통신의 하나의 엔트 포인트 논리적 의미로 컴퓨터 네트워크를 경유하는 프로세스간 통신의 종착점(end-point). 즉, 네트워크를 이용해 데이터 송수신을 하고자 하는 모든 프로그램들은
quiz P.L echo csapp.c echoclient.c
코드리뷰를 했는데 신기하게 작성하신 부분이 있었다.이 부분을if (!strcasecmp(method, "GET") == 0 || strcasecmp(method, "HEAD" == 0아래와 같이 작성하셨다.if (strcasecmp(method,"GET") && str
프로세스의 생성 과정에서 프로세스의 준비상태에 무엇을 추가할지 결정작업의 혼합 개선 혹은 메모리 가용량 증가를 위해 교체 작업미리 정해진 정책(알고리즘)에 따라 실행할 프로세스를 선택디스팻처 : 단기 스케줄러가 선택한 프로세스에 실질적으로 CPU에 할당해주는 분배기.
task - comparing the priority when list_elem a and list_elem b are given. \-> point is accessing waiters from list_elem. \-> after checking the stru
문제상황priority-sema는 pass하는데 priority-condvar는 실패했다.테스트 결과를 보니까 정렬이 안되고 있는 점을 발견할 수 있었다.수 시간의 삽질과 팀원들의 수고 덕분에 왜 정렬이 되지 않았었는지 확인할 수 있었다.문제의 우선순위 정렬 함수틀렸던
헤더 파일과 소스파일을 동일한 소스파일에 include해서 빌드 자체가 실패함 (timer.c에서 thread.c와 thread.h를 동시에 include함)헤더 파일만 정의.헤더 파일과 소스파일을 같이 넣으면 안되는 이유1\. 다중 정의 : 동일한 함수 또는 변수 선
공부 키워드 User mode vs Kernel mode User mode 한정된 권한: 보안과 안정성을 위해 유저 모드에서는 실행 중인 프로그램이 시스템 리소스에 직접 접근할 수 있는 권한이 제한되어 있다. 응용 프로그램 실행: 주로 응용프로그램은 응용 프로그램에서
지역성 Demand pagingos 왜필요하냐1\. API(read,write)를 제공함으로써 하드웨어를 사용할 수 있게 함2\. 하드웨어의 추상화운영체제를 이해할 땐 탑다운을 이해해야함추상화를 왜 이렇게 했는지를 이야기하기 위해 탑다운으로 이야기해야한다. -> 메타
process_exec() file_name문자열을파싱 첫번째토큰을thread_create()함수에스레드이름으로전달 start_process() file_name문자열파싱 <- 여기서 또? argument_stack()함수를이용해스택에토큰들을저장
Arguments Passing
* 1215 금요일 - 10시 출근 (1시간 커피챗) [ ] kaist gitbook Project3 Virtual Memory 읽기 [ ] kaist gitbook Project3 FAQ, Appendix Memory Allocation, Virtual Address
만약에 4키로바이트 하드디스크의 원자 유닛 운영체제가 Crash consistency 를 해결 못해주면 application programmer가 해야하는데 이거 잘 안함. 그러나 너무 중요. foo 를 bar로 업데이트해줄거면 foo 아니면 bar만 accept
1216 토요일 - 10시 30분 출근 (점심 2시간)O Keywords 정리kaist gitbook Project3 FAQ, Appendix Memory Allocation, Virtual Address, Page Table 읽기ostep or concepts 읽으
* 1218 월요일 [x] 권영진교수님 os강의 [x] 동료학습(keywords, and git book) [ ] filling the gap -> 아파서 나중에 [ ] Gitbook/PPT 등 보고 Task 리스트업&구현 순서 생각 충격적인 사실. 내가 아는거. 책
목표: 물리 메모리 로드 대신, supplement page table으로 메모리를 관리한다구현Page Fault Handler 수정: kill 하지말고 spt에서 page를 찾고, 있으면 pte를 추가struct thread, page, supplement_page_
목표: 물리 메모리 로드 대신, supplement page table으로 메모리를 관리한다구현Page Fault Handler 수정: kill 하지말고 spt에서 page를 찾고, 있으면 pte를 추가struct thread, page, supplement_page_
1221 목요일 [ ] memory management 빠진 부분 확인 [ ] 빠진부분 작성 [ ] anon page 구현 memory management missing part 이렇게 vmclaimpage(addr); 하면 해당 함수에서 spt에서 va에 해당하는
Trouble Shooting issue 1 annonymous 관련 코드 짠 후 돌려보니 돌리자마자 바로 커널 패닉🫠 밑에서 세번째 줄에 filesys/fsutil.c:160 in fsutil_get(): db: open failed 왜 저기서 터지는지 모르겠
여태까지 상황현재 상황은 테케를 돌리면 이렇게 뜨고,지금 나는 exec도 못들어가고 있는 상황.init.c 의 main 함수를 돌고 나서 child process인 test가 돌아가는 건데 나는 main함수도 못돌고 있다.run_actions 에서 죽음.여기서 죽음 이
스택그로스는 이 레퍼런스를 참고해서 구현했더니 바로 관련 테스트케이스가 통과했다.다만 조건문중에 아주 복잡한 부분이 있어서 짚고 넘어갔다.스택 확장으로 처리할 수 있는 폴트인 경우를 표현하기 위해 (USER_STACK - (1 << 20) <= rsp
지난 5주동안 PintOS 과제를 진행하였다.https://velog.io/@gigis-note/posts?tag=pintosweek 07-09 git repohttps://github.com/hnjog/pintos-kaist/tree/geeks-la
이번 개인 과제는 2주짜리이고 프레임워크에 친숙해지기 위해 게시판 만들기가 되겠습니다.이번에는 지난번에 연습해보지 못해 아쉬웠던 깃크라켄, 깃이슈와 PR을 연동하여 브랜치를 관리하는 방법을 연습 삼아 시도해 볼 예정입니다. 깃 이슈를 생성하고 PR생성해서 이슈를 참조하
우분투에서 서버 실행시켰때 안되는 이유 찾기이 태스크가 3일이나 걸렸다. 도대체 아무리 새로 가상환경을 만들고 깔고 파이썬을 지웠다가 깔았다가 다운그레이드 했다가 우분투를 새로 팠다가 다시 세팅해도 되질 않았다. 그러다 우연히 어떤 외국 레딧에서 시스템 전역변수에 파이
팀이 어떤 것들을 했는지 우리 팀은 맛스페이스 라는 맛집 추천 웹서비스를 만들었다. 친구들 혹은 동료들끼리 함께 갈 식당을 정할 때 서로 원하는 취향과 먹고 싶은 음식을 맞추기 위해 시간을 많이 사용한다. 그래서 우리는 각자 취향의 교집합 혹은 중간 지점을 구해주면 어
내가 정글에 오면서 세웠던 단 하나의 목표가 끝까지 수료하기였는데 모든 과정을 포기하지 않고 잘 수료한 것이 너무 칭찬한다. 솔직히 과정 자체가 굉장히 컴팩트하게 많은 것들을 배워야하고 스케줄도 살인적이여서 빨래할 시간도 부족하다.일반 다른 분들도 힘들어했는데 특히 2