일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- FLUTTER
- 아스키코드
- 가상환경
- 남양주맛집
- 장고
- DOM
- 강원도속초맛집
- 건대입구맛집
- 성수동카페
- JavaScript
- 상속
- python3
- 포인터
- Django
- 속초여행
- pipenv
- removetooltip
- popupmenubutton
- c언어문자열
- Python
- 코딩독학
- BeautifulSoup
- 추상클래스
- 자바
- 노마드코더
- 부스트코스
- 정렬알고리즘
- 알고리즘
- richtext
- 컴퓨터과학
- Today
- Total
목록Programming Theory (14)
YUYANE
학습 강의 www.boostcourse.org/cs112/lecture/119022/ 버블 정렬 정렬되지 않은 리스트를 오름차순/내림차순으로 정렬하기 위한 알고리즘의 하나이다. 두 개의 요소를 비교하여 정렬해나가는 방식으로 좁은 범위의 정렬에 집중한다. 예를 들어 아래와 같은 7개의 숫자가 임의의 순서로 나열되어 있다. 버블 정렬 알고리즘을 이용하여 오름차순으로 정렬해보자. 0 25 10 17 6 12 9 두 요소 씩 비교하여 첫 번째 요소가 두 번째 요소보다 값이 크다면 두 값을 교환하는 식으로 정렬한다. 0과 25 비교 후 : 0 25 10 17 6 12 9 25와 10 비교 후 : 0 10 25 17 6 12 9 25와 17 비교 후 : 0 10 17 25 6 12 9 이런 식으로 숫자 끝까지 정렬..
학습 강의 www.boostcourse.org/cs112/lecture/119019 www.boostcourse.org/cs112/lecture/119021 메모리와 자료구조, 그리고 배열 컴퓨터 안에는 메모리(RAM)가 있다. 메모리를 바이트 단위의 격자 배열로 취급하면, 문제를 풀어내기 위해 왼쪽에서 오른쪽, 위에서 아래로 나아가는 자료 구조를 이용할 수 있다. 배열은 한 자료형의 여러 값들이 메모리 상에 모여 있는 구조로, 실생활에서 살펴보면 사물함 락커에 비유할 수 있다. 컴퓨터는 배열의 값들에 접근할 때 배열의 인덱스 하나하나를 접근하는데, 마치 사물함 락커를 하나 하나 열어보는 것과 비슷하다. 어떤 값이 배열 어느 곳에 있는 지 찾아보기 위해서, 배열 정렬의 여부에 따라 선형 검색과 이진 검색..
학습 도서 이것이 코딩테스트다 with 파이썬 (한빛미디어, 나동빈 저) 정렬(Sorting) - 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 - 예시 : 오름차순, 내림차순 - 종류 : 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬 계수 정렬(Count Sort) - 시간 복잡도(데이터의 개수 N, 데이터 최댓값 K) : O(N+K) - 한계 : 데이터의 크기 범위가 제한 되어 정수 형태로 표현할 수 있을 때에만 사용 가능 - 컨셉 : 데이터의 개수 만큼의 리스트를 선언하고 그 안에 정렬에 대한 정보를 담는다. - 알고리즘 1) 데이터 값의 개수를 원소로 가지고 있는 리스트를 선언한다. 2) 배열의 첫 번째 데이터를 확인한다. 3) '배열의 첫 번째 데이터'를 인덱스로 가지는 데이터에 1을 더한..
학습 도서 이것이 코딩테스트다 with 파이썬 (한빛미디어, 나동빈 저) 정렬(Sorting) - 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 - 예시 : 오름차순, 내림차순 - 종류 : 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬 삽입 정렬(Insertion Sort) - 컨셉 : 순서대로 데이터를 확인하며 적절한 위치에 삽입한다. - 알고리즘 1) 첫 번째 데이터는 그대로 둔다. 2) 두 번째 데이터가 첫 번째 데이터보다 큰 지 판단한다. 3) 크다면 그대로 두고, 작다면 첫 번째 데이터의 앞으로 옮긴다. 4) 세 번째 데이터가 두 번째 데이터보다 큰 지 판단한다. 5) 크다면 그대로 두고, 작다면 두 번째 데이터 앞으로 옮긴다. 6) 만약에 세 번째 데이터를 두 번째 데이터 앞으로 옮겼다면..
학습 도서 이것이 코딩테스트다 with 파이썬 (한빛미디어, 나동빈 저) 정렬(Sorting) - 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 - 예시 : 오름차순, 내림차순 - 종류 : 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬 선택 정렬(Selection Sort) - 컨셉 : 매 번 가장 작은 것을 선택해서 맨 앞에 놓는다. - 알고리즘 1) 가장 작은 데이터를 선택한다. 2) 맨 앞에 있는 데이터와 바꾼다. 3) 남은 데이터 중에서 가장 작은 데이터를 선택한다. 4) 맨 앞에서 두 번째에 있는 데이터와 바꾼다. ... 전체 소스 코드 array = [ 7,5,9,0,3,1,6,2,4,8 ] for i in range(len(array)): min_index = i for j in ran..
내가 사용하는 모니터는 1초에 몇 개의 bit(0과 1)를 사용하여 화면을 표현하고 있을까? 픽셀 수 = 2560 * 1600 = 4,096,000 비트 수준 = 8bit 새로 고침 빈도(Hz) = 59Hz 답 = 4,096,000 * 8 * 59 = 1,933,312,000 비트 내가 사용하 는 컴퓨터의 CPU는 1초에 몇 개의 bit(0과 1)를 처리할 수 있을까? CPU 헤르츠 : 1.30GHz ~ 1.50GHz 답 = 1초 동안 13억 ~ 15억개의 비트를 처리할 수 있습니다. 해상도 모든 컴퓨터의 이미지는 이미지의 최소 단위인 픽셀로 이루어져 있으며 이 픽셀이 갖는 컬러의 깊이로 컬러의 해상도가 결정 된다. 픽셀 모니터 이미지를 나타낼 때 점들을 찍어 나타내는데, 이 점들을 픽셀이라고 한다. 색..
컴퓨터는 아날로그 신호인 소리를 어떻게 디지털로 저장하는 걸까? 1) 표본화 아날로그 신호는 시간에 따라 값이 연속적으로 존재하며 그에 따라 존재하는 값들도 계속해서 존재한다. 디지털로 저장하기 위해서는 이 연속적인 값들을 일정한 시간 간격 마다의 아날로그 신호(사운드의 경우 특정 시간의 기압)를 채취하는 표본화 과정이 필요하다. 2) 양자화 표본화 과정 이후에는 양자화가 필요하다. 양자화는 표본화 된 아날로그 신호를 일정한 전압 레벨의 구간에 강제적으로 대응시키는 과정이다. 이유는 여전히 연속적인 값을 가지는 아날로그 신호의 양, 즉 처리할 데이터가 너무 많기 때문에 일정한 전압 레벨 구간으로 나누어 버리는 것이다. 3) 부호화 마지막으로 부호화를 통해 표본화와 양자화 이후에 얻어진 데이터에 2진수의 ..
컴퓨터는 왜 2진수를 사용하게 되었는지? 컴퓨팅 초기에 컴퓨터에 데이터를 입력하는 유일한 방법은 스위치를 누르거나 천공 카드 또는 천공 종이 테이프를 넣는 것이었다. 스위치와 천공 구멍 모두 데이터가 1과 0으로 표시되는 이진수를 사용하여 상태를 쉽게 반영할 수 있다. 예를 들어, 1은 '스위치의 켜짐', '천공의 구멍 있음'을 나타내고 0은 '스위치의 꺼짐', '천공의 구멍 없음'을 나타냄. 따라서 인간이 사용하는 수의 체계 10진수 보다는 2진수가 컴퓨터가 이해하기 쉬운 시스템이었다. 왜 기술이 진보한 지금까지도 2진수를 사용하고 있을지 컴퓨터를 구성하는 가장 중요한 부품은 CPU라고 불리는 중앙 처리 장치. 인간으로 따지면 두뇌 역할을 하며,모든 산수 계산과 논리적인 결정을 수행하고 있다. CPU는..