본문 바로가기

CS

(54)
정렬 알고리즘 (1) (버블, 선택, 병합(합병) 정렬) 목차 정렬 알고리즘 이란? 버블 정렬 설명 및 코드 구현 선택 정렬 설명 및 코드 구현 병합(합병) 정렬 설명 및 코드 구현 버블, 선택, 병합(합병) 정렬의 시간 복잡도 정렬 알고리즘 이란? 정렬 알고리즘 이란 원소들을 번호순이나 사전순서와 같이 일정한 순서대로 정렬하는 알고리즘이다. 정렬 알고리즘이 존재하는 이유는 탐색의 효율성 때문이다. 수많은 데이터들을 탐색할 때, 무작위로 섞여 있는 데이터를 탐색하는 것보다 정렬되어 있는 데이터를 탐색하는 것이 훨씬 효율적이고 활용성에 있어서도 용이하다. 정렬 알고리즘은 매루 많지만, 그 중에서 버블, 선택, 병합(합병) 정렬에 대해 다룰 것이다. 버블 정렬 설명 및 코드 구현 1) 버블 정렬 이란? 버블 정렬은 두 개의 인접한 자료 값을 비교하면서 위치를 교환..
[프로그래머스(programmers)] H-index (Level 2, Python) 출처 https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓..
탐색 알고리즘 (검색 알고리즘: 선형검색과 이진검색) 목차 탐색 알고리즘이란 선형 검색이란 C언어로 선형 검색을 구현한 코드 이진 검색이란 C언어로 이진 검색을 구현한 코드 선형 검색과 이진 검색의 시간복잡도 탐색 알고리즘 이란? 탐색 알고리즘이란 수많은 데이터들 사이에서 원하는 데이터를 찾는 알고리즘이다. 실제로 검색 엔진에 탐색 알고리즘이 많이 사용되기도 한다. 그래서 탐색 알고리즘을 검색 알고리즘이라고 부르기도 한다. 오늘은 탐색 알고리즘 중 선형 검색과 이진 검색에 대한 내용을 다룰 것 이다. 선형 검색 이란? 선형 검색은 위의 그림처럼, 가장 좌측부터 우측까지 순서대로 원하는 데이터를 찾아보는 알고리즘이다. 즉 첫 번째부터 끝까지 하나하나 확인하는 알고리즘이다. 선형 검색은 배열이 정렬되어 있지 않던, 정렬되어 있던 이용할 수 있다. 하지만 하나하..
알고리즘 표기법 (시간 복잡도: Big O 와 Big Ω) 목차 시간 복잡도란? Big-O 란? Big-O 의 종류 Big-Ω 란? Big-Ω 의 종류 Big-O가 낮은 알고리즘이 좋을까? Big-Ω가 낮은 알고리즘이 좋을까? 시간 복잡도란? 시간 복잡도란 입력값과 문제를 해결하는 데 걸리는 시간을 함수 관계로 나타낸 것 이다. 즉 실행시간을 기준으로, 알고리즘이 얼마나 효율적인지를 판단할 수 있는 척도이다. 시간 복잡도는 최악의 경우, 최선의 경우, 평균의 경우를 계산해서 나타낸다. 이때 최악의 경우는 Big-O(빅-오), 최선의 경우는 Big-Ω(빅-오메가), 평균의 경우는 Big-θ(빅-세타)로 나타 낸다. 이번 글은 Big-O(빅-오)와 Big-Ω(빅-오메가)에 대한 내용만 다룰 것 이다. Big-O 란? Big-O(빅-오) 란, 위에서 언급했듯이 최악의..
비트와 바이트 목차 비트(bit)와 바이트(byte) 비트(bit)와 바이트(byte)의 활용 컴퓨터는 아날로그 신호인 소리를 어떻게 디지털로 저장할까? 컴퓨터의 CPU는 1초에 몇 개의 bit(0과 1)를 처리할 수 있을까? 비트(bit)와 바이트(byte) 비트(bit)는 0과 1, 두가지 값만 가질 수 있는 측정 단위이다. 즉 2진법으로 표현된 수에서 각각의 자릿수 하나를 비트라고 한다. 그러므로 사진 맨 윗줄의 00110101은 8개의 비트가 줄 세워져 있다고 볼 수 있다. 바이트(byte)는 비트 8개의 비트열이라고 생각하면 된다. 즉 1byte = 8bit 인 것이다. 한 바이트에는 8개의 비트가 있으므로, 한 바이트에서 표현될 수 있는 경우는 2×2×2×2×2×2×2×2=256 가지 이다. 비트(bit)와..
컴퓨터와 2진법의 관계 목차 2진법 이란? 2진법의 표현법 컴퓨터와 2진법의 관계 컴퓨터가 2진법을 사용하는 이유 컴퓨터는 왜 기술이 진보한 지금까지도 2진법을 사용할까? C언어로, 10진법을 2진법으로 바꿔주는 프로그램 개발 2진법 이란? 인간은 10진법을 사용하고 있다. 10진법이란, 0~9라는 10가지의 숫자를 이용해서 수를 나타내는 진법이다. 그렇다면 2진법은 무엇일까? 2진법이란, 0과 1이라는 두 개의 숫자만을 사용하여 수를 나타내는 진법이다. 따라서, 진법에 따라 같은 수가 다르게 표현되기도 한다. 10진법 2진법 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 (+ 8진법은 0~7을 사용하고, 16진법은 0~9와 A~F까지 총 15의 ..