CS
CS - 검색 알고리즘
선형 검색 배열의 인덱스를 처음부터 끝까지 하나씩 증가시켜 검사하는 방법 정확하지만 아주 비효율적이다. 예를 들어 배열의 크기가 10억이고, 찾아야 하는 값이 가장 뒤에 있다면 10억 번을 검사해야 한다 물론 가장 앞에 있으면 한 번을 끝날 수 있다. 이진 검색 배열 범위중 중간을 정하고, 찾는 값이 중간값보다 크면 중간부터 끝을, 작다면 초기부터 중간을 범위로 두고 이 과정을 계속해서 반복하여 검사한다. 범위가 클 경우 선형 검색보다 비교적 빠르다 https://www.boostcourse.org/ 다 함께 배우고 성장하는 부스트코스 부스트코스(boostcourse)는 모두 함께 배우고 성장하는 비영리 SW 온라인 플랫폼입니다. www.boostcourse.org 부스트코스 - 모두를 위한 컴퓨터 과학..
CS - 컴파일
컴파일의 과정은 네 단계로 볼 수 있습니다. 전처리 컴파일 어셈블링 링킹 전처리 컴파일의 가장 첫 단계, 전처리기에 의해 실행된다. #으로 시작되는 C 소스 코드는 전처리기에게 실질적인 컴파일이 이루어지기 전에 무언가를 실행하라고 알려줍니다. ex) #include - 전처리기에 다른 파일의 내용을 포함시키라고 알려준다 컴파일 전처리기 다음 순서, 컴파일러라고 불리는 프로그램은 c코드를 어셈블리어라는 저수준 프로그래밍 언어로 컴파일합니다. 어셈블 소스코드가 어셈블리 코드로 변환되면, 어셈블리 코드를 오브젝트 코드로 변환시키는 작업 링크 소스코드에서 오브젝트 코드로 컴파일 되어야 할 파일이 딱 한 개라면 어셈블 단계에서 끝나지만, 그렇지 않은 경우 링크 단계까지 수행합니다. 프로그램이 여러 개의 파일로 이..
CS - 알고리즘 예제
총 512페이지의 전화번호부에서 '이펭수'은 64페이지에 있습니다. 책의 절반씩을 찾아보는 두 번째 알고리즘을 사용한다면, '이펭수'을 찾기 위해 페이지를 몇 번 찾아봐야 할까요? import java.util.Scanner; public class test { private static int num; private static int count = 1; public static void main(String[] args) { Scanner sc = new Scanner(System.in); num = sc.nextInt(); checkNum(0,512); System.out.println(count); } private static void checkNum(int min,int max) { int m..
CS - 알고리즘
알고리즘 입력받은 자료를 출력의 형태로 만드는 과정 수행 명령의 규칙적인 나열 알고리즘을 평가할 때 정확성도 중요하지만, 효율성도 중요하다. EX) 3개의 수 중 가장 큰 수를 찾는 알고리즘 3개의 수 A,B,C가 있다고 하자. A와 B의 대소 관계를 구분한다. 두 수 중 더 큰 수를 임시 값 T에 저장한다. T와 C의 대소 관계를 구분한다. 두 수 중 더 큰 수를 T에 저장한다. T값을 출력한다. 입력 A,B,C 출력 T 1. 만약 A와 B중 A가 더 크거나 같으면 T에 A값을 저장한다. 2. 아니면 T에 B 값을 저장한다. 3. 만약 T와 C중 T가 더 크거나 같으면 T에 계속 진행한다. 4. 아니면 T에 C 값을 저장한다. 5. T값을 출력한다. 자바언어로 표현하면 if (A >= B) { T = ..
CS - 아스키(ASCII)코드
아스키(ASCII)코드 미국 국립 표준 협회에서 표준화한 정보교환용 7비트 부호체계 문자나 기호들을 컴퓨터가 이용할 수 있는 디지털 신호(2진수)로 변환하는 것 10진법의 알파벳 아스키 코드 A B C D E F G 65 66 67 68 69 70 71 H I J K L M N 72 73 74 75 76 77 78 O P Q R S T U 79 80 81 82 83 84 85 V W X Y Z 86 87 88 89 90 A의 10진법 표현은 65 이다. 이진법으로 표현하면 2⁶X1+2⁵X0+2⁴X0+2³X0+2²X0+2¹X0+2⁰X1 = 1000001이다 https://www.boostcourse.org/ 다 함께 배우고 성장하는 부스트코스 부스트코스(boostcourse)는 모두 함께 배우고 성장하는 ..
CS - 비트
비트 정보를 저장하고 연산을 수행하는 단위 "binary digit"의 줄인 말로 이진 숫자의 뜻을 가진다. 디지털 데이터를 0과 1두가지 값으로 많은 양의 정보를 저장 할 수 있다 컴퓨터에 저장된 데이터를 수정하기 위해 수학적 연산을 수행할 수 있다. 비트열 여덞 개의 비트가 모여서 만들어 진것 2^8 = 256 개의 서로 다른 바이트가 존재 할 수 있다. https://www.boostcourse.org/ 다 함께 배우고 성장하는 부스트코스 부스트코스(boostcourse)는 모두 함께 배우고 성장하는 비영리 SW 온라인 플랫폼입니다. www.boostcourse.org 부스트코스 - 모두를 위한 컴퓨터 과학을 공부하고 작성하였습니다.