목록TIL (46)
정글에서 온 개발자

배경대부분의 PintOS 자료에서 sleep_list를 매번 순회하지 않기 위해서 next_tick_to_awake(이하 ‘글로벌 틱’)라는 전역변수를 하나 더 지정하여 sleep_list의 tick 최소 값을 표시하도록 한다.[Explicit]이를 위해서는, sleep_list 전체 순회(thread_awake)를 할 때마다 ‘글로벌 틱’을 갱신한다.전체 순회를 조금이라도 줄이기 위해서는 sleep_list에 넣을 때부터 깨야 하는 tick의 오름차순으로 정렬되게 삽입하여, 순회 중 깨우지 못하는 쓰레드를 만나면 순회를 중단시킬 수 있다.이를 좀 더 생각해보면, sleep_list의 첫번째 요소는 항상 ‘글로벌 틱’이므로 get_next_tick_to_awake가 이를 활용하게 작성할 수도 있다.[Im..
정렬 복습 화요 퀴즈를 봐야해서 빠르게 정렬을 복습했다. 2023.10.18 - [정리] - 주요 정렬 요약(8+2) 주요 정렬 요약(8+2) 나만의 언어로 암기해보기 버블 정렬: 이웃 교환의 연속 셰이커정렬 : 이웃교환을 위 아래 번갈아서 함 단순선택(선택 정렬) : 자리 정해서 한번에 새치기(원격 교환) 단순삽입(삽입 정렬) : 한명 krafton-jungle-essay.tistory.com 오픈 북이였는데도 퀵정렬 문제를 제대로 풀지 못한 걸로 봐서 아직 달달 외우진 못했다. 오늘 책을 보고 설명을 하는데, 피벗이 양쪽 끝에 있는 경우에도 설명이 막혔다. 다시 한 번 손으로 그려보면서 이해를 해야겠다. 면접과 구현에 관해 다시 한번, 가장 중요한 건 작동을 하는 코드다. 면접에서도 일단은 구현은 해..
책읽기: Introduction to Algorithms 40페이지까지 읽어보았다.문제풀기: 18번문제까지 풀었다. 외판원 순회 2 에러 푸느라 애먹었다. 베이스 케이스를 잘못 잡아서 고생했다.2023.10.17 - [정리] - 알고리즘과 자료구조의 정의타당하지 않은 알고리즘도 유용할 수 있다는 것을 다시 한번 상기됐다. 알고리즘과 자료구조의 정의알고리즘 어떤 값이나 집합을 입력으로 받아 또 다른 값이나 값의 집합을 출력하는 잘 정의된 계산 절차 잘 정의된 계산 문제를 풀기 위한 도구 계산 문제를 정의하려면 입력과 출력의 관계를krafton-jungle-essay.tistory.com2023.10.17 - [정리] - 알고리즘의 분석어렴풋했던 내용을 정리하고 넘어갈 수 있었다. 알고리즘의 분석알고리즘을 ..
루프 불변성 점진적인 방법에서 활용 가능하다. For 나 While 등 루프를 돌아도 변하지 않는 조건 알고리즘이 타당한 이유를 쉽게 이해할 수 있게 사용된다. 세가지 특징이 있다. 초기조건 : 첫번째 반복을 시작하기 전에 루프 불변성이 참이여아한다. 유지조건: 다음 반복이 시작되기 전까지도 계속 참이여야 한다. 종료조건: 루프가 종료될 때 그 불변성이 알고리즘의 타당성을 보이는데 도움이 될 유용한 특성을 가져야 한다. 귀납법과 비슷하다. 베이스가 참임을 보임 귀납적 과정을 증명함 +. 마지막으로 알고리즘의 타당성을 보이는 것이 중요 정렬 알고리즘을 풀기로 했으면 루프 불변성이 마지막에 정렬된 수열을 나타내야 하는 것. 분할 정복 재귀적 구조를 가진 알고리즘 중 하나 세단계 분할: 현재 문제를 같은 문제..
2023.10.16 - [정리] - 소수 구하기의 여러가지 방법과 시간복잡도 비교 ChatGPT 덕분에 이쁜 그래프도 넣을 수 있었다. 소수 구하기의 여러가지 방법과 시간복잡도 비교 관련문제 백준 1978 소수 찾기 백준 9020 골드바흐의 추측 메모이제이션 메모이제이션 : 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 동일한 계 krafton-jungle-essay.tistory.com 2023.10.16 - [정리] - 파이썬 ‘=’ 이 연산자가 아니다 논란과 주의할 점 왜 썸네일이 귀여운 바다코끼리인걸까? 읽어보면 알 수 있다. 파이썬 ‘=’ 이 연산자가 아니다 논란과 주의할 점 사실 논란의 여지가 없다. ‘=’ 은 연산자(operator)가 아니라 **..
알고리즘을 풀기보다는 백준 문서를 읽고 궁금한 걸 찾는데 시간을 더 보냈다. https://www.acmicpc.net/blog/view/55 https://www.acmicpc.net/blog/view/70 https://dailyheumsi.tistory.com/32 작동 원리 줄바꿈 데이터 데이터의 끝에 ‘/n’ 이 들어오는 것이 원칙, 꼭 지켜지지는 않음 ‘/n’으로 입력의 끝을 검사하면 문제 생길 수 있음 널 문자는 하나의 문자로 취급. 널 문자는 공백과 다름. 언어별 조심해야 할 것들 C 오버플로우 조심 cio, cout 는 iostream float는 너무 부정확함 → double 쓰자 fflush 는 출력 스트림만 비울 수 있다. fflush(stdin)은 표준이 아님. rewind(std..