'SW 사관학교 정글'에 들어온지 6일째 되는 날이다. 6일이 정신없이 흘러간거 같다. 첫 날부터 미니 프로젝트를 진행하면서 매일 새벽까지 프로젝트에 몰입하는 나 자신을 볼 수 있었다. 이제 6일 밖에 안지났지만 정글이 어떻게 공부하는 곳인지 어렴풋이 알아가고 있는 것
1. input() input() 함수로 사용자가 어떤 값을 입력하게 하고, 그 값을 변수에 저장할 수 있습니다. 2. sys.stdin.readline() 반복문으로 여러줄을 입력 받아야 할 때는 input()으로 입력 받는 다면 시간초과가 발생할 수 있다. 그 때
위와 같이 사용하면 1, 2, 3, 4, 5 숫자 모음을 생성할 수 있습니다.리스트의 인덱싱위의 예를 보면 a\[0]를 작성하면 a의 첫 번째 요솟 값을 구할 수 있습니다.리스트의 슬라이싱문자열과 마찬가지로 리스트에서도 슬라이싱 기법을 적용할 수 있습니다.위의 예를 보
문제는 #1110, #9095, #1182이다. 3문제 중 1문제 맞추는게 목표였지만, 예상과 달리 3문제를 모두 맞췄다. 시험이 끝나고 바로 2주차 과제가 주어졌으나, 오늘 푼 문제를 리뷰하면서 시간을 보내려고 한다. 차례대로 푼 문제를 리뷰해보자.!! 1. 더하기
이진탐색트리를 공부하다가 O(longn)에 대한 궁금증이 생겨서 구글링을 했다. 알아본 내용을 적어본다.예를 들어 2개의 자식 노드를 가진 이진트리를 이용해서 M개의 노드 중 원하는 값의 노드를 찾는다고 가정한다. 처음에는 M개의 노드 모두 탐색 해야하지만 루트 노드에
내가 이해한 이진 탐색을 적어보려고 한다. 이진 검색은 원소가 정렬된 배열에서 좀 더 효율적으로 검색할 수 있는 알고리즘이다.이진 탐색 알고리즘은 정렬되어있는 배열에서 반으로 계속 나누면서 찾아야되는 키값이 나올 때까지 돌리는 것이다. 바로 코드를 보고 이해해보자.
1. 이진 탐색 핵심!!! 오늘은 이진 탐색의 핵심을 정리 해보려고 한다. 정렬되어있는 배열에서 사용을 해야된다. 시작점과 끝점을 지정할 때 정해야된다. (문제에 다 나와있다.) 반씩 줄여가면서 탐색하기 때문에 평균 logN이라는 시간 복잡도가 나온다. 2. 풀면서
데이터를 임시 저장할 때 사용하는 자료구조로, 데이터의 입력과 출력 순서는 후입선출(LIFO) 방식입니다.push 데이터를 넣는 작업pop 데이터를 꺼내는 작업top 푸시하고 팝하는 윗부분bottom 아랫부분스택 배열 stk푸시한 데이터를 저장하는 스택 본체인 list
분할정복 알고리즘은 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법이다. 대표적인 예로는 정렬 알고리즘 중에 퀵 정렬, 병합 정렬, 이진 탐색등의 문제들이 있습니다.Divide원래 문제가 분할하여 비슷한 유형의 더 작은 하위 문제로 분할이 가능할 때
문제는 \[흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드 트리(Quad Tree)라는 방법이 있다. 흰 점을 나타내는 0과 검은 점을 나타내는 1로만 이루어진 영상(2차원 배열)에서 같은 숫자의 점들이 한 곳에 많이 몰려있으면, 쿼드 트리에서는 이를 압축하여 간단히
1. 이진 검색 트리란? 부모 노드에 왼쪽과 오른쪽 자식 노드를 가지는 트리이다. 즉, 부모 노드는 자식 노드를 두 개만 갖는 트리를 말한다. 또한 2가지 정도에 특성이 있습니다. >1. 부모 노드의 왼쪽 하위 트리에는 부모 노드보다 작은 값이 있는 노드만 포함됩니다.
트리 순회에 대해 공부하던 도중 중위 순회와 후위 순회의 값을 주고 전위 순회로 바꾸는 문제를 마주 했다. 트리 순회에 대해서 다 이해했다고 생각했는데 막상 문제를 마주하니깐 어떻게 풀어야 될지 감이 잡히지 않았다. 그래서 답을 보고 이해한 대로 작성해보려고 한다.
문제는 #1697, #18405, #1939이다. 이번에는 3문제중에서 2문제 맞추는 것을 목표로 삼았다. 다행히 목표한대로 2문제를 맞췄다. 저번주에는 1문제를 맞춰서 공부 방법을 1문제를 너무 오래 붙잡지 않고 30분 생각하고 15분정도 코드를 짜보고 안되면 답을
1. 다이나믹 프로그래밍이란? 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법이다. 이미 계산된 결과(작은 문제)는 별도의 메모리 영역에 저장하여 다시 계산하지 않도록 한다. 다이나믹 프로그래밍의 구현은 일반적으로 두 가지 방식 탑다운, 바텀업
이번에는 따로 진행하는 알고리즘 스터디에서 공부하기로 했던 정규표현식에 대해 작성해보려고 한다.복잡한 문자열을 처리할때 사용하는 기법모든 언어 공통으로 사용1) 문자 클래스\[]사이의 문자들과 매치"a"는 정규식과 일치하는 문자인 "a"가 있으므로 매치"before"는
이번 주차에는 처음으로 C언어를 배우고 레드-블랙 트리를 배우는 시간이다. C언어 문법을 배우기 전에 레드-블랙 트리에 대해 알아보려고 한다. >레드-블랙 트리의 필요성 1. 레드-블랙 트리의 특성 이진 검색 트리로서 각 노드당 한 비트의 추가 기억 공간을 가진다.
꼭 이전 내용을 다 보고 올 것!!! 1. 헤더 파일 2. 트리 생성 RB tree 구조체 생성 여러 개의 tree를 생성할 수 있어야 하며 각각 다른 내용들을 저장할 수 있어야함. >- 각각의 트리를 생성하기 위해 함수를 호출할 때마다 트리 생성 경계 노드도 생
동적 메모리 할당이란? 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다. 동적 메모리 할당기
이번주부터 pintos 프로젝트를 시작했다.이번주는 thread의 생성 방식이랑 자원관리 방식이 어떻게 되는지에 대해 공부했다. 총 3가지(Alarm Clock, Priority Scheduling, Advanced Scheduler)를 구현하는 것이였다. 우리조는 목