알고리즘 3

엔디안(Endianness)

엔디안(Endianness) 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 의미 (HW아키텍처마다 다름) ※속도 향상을 위해 바이트 단위와 워드 단위를 변환하여 연산 할 때 올바로 이해하지 않으면 오류 발생 컴퓨터는 모든 데이터를 2진수로 표현하고 처리합니다. 비트(bit)란 컴퓨터가 데이터를 처리하기 위해 사용하는 데이터의 최소 단위인데, 이러한 비트는 2진수 값(0과1) 하나만 저장가능합니다. 위에 비트(bit)가 8개 모이면 바이트(byte)가 되는데 한 문자를 표현할 수 있는 최소 단위 입니다. 컴퓨터는 데이터를 메모리에 저장할 때 바이트(byte) 단위로 나눠서 저장합니다. 컴퓨터가 저장하는 데이터는 32비트(4바이트), 64비트(8바이트)로 구성되는데, 연속된..

알고리즘 2022.02.09

재귀 호출(recursive call)

재귀 호출 자기 자신을 호출하여 순환 수행 재귀호출방식을 사용하면 프로그램의 크기를 줄이고 간단하게 작성 가능! But, 실무에서 쓰면 욕먹음(되도록 쓰지말자) 시간복잡도 계산이 반복문에 비해 어렵다 반복문보다 메모리 사용량 많고, 수행 시간이 길어 질 수 있음 함수 호출 많이해서 StackOverFlow 가능성있음 종결조건을 확실하게 하지않으면 무한반복 무한 반복이 일어나면 CPU 크래쉬 발생(반복문은 메모리 부족하면 알아서 멈춤) 재귀 호출 예시1 - 팩토리얼 private int factorial(int n){ if(n == 1) return 1; return n * factorial(n - 1); } 재귀 호출 예시2 - 피보나치 수열 0과 1로 시작하고 이전의 두 수 합을 다음 항으로 하는 수열..

알고리즘 2022.02.03

스택(Stack)

스택(Stack) 물건을 쌓아 올리듯 자료를 쌓아 올린 형태의 자료구조 스택에 저장된 자료는 선형 구조 선형구조 : 자료 간의 관계가 1대1 관계 비선형구조 : 자료 간의 관계가 1대N의 관계 스택에 자료를 삽입하거나 스택에서 자료를 꺼낼 수 있다. 마지막에 삽입한 자료는 가장 먼저 꺼낸다. 후입선출(LIFO, Last-In-First-Out) 스택 구현시 고려 사항 1차원 배열을 사용하여 구현할 경우 구현이 용이하다는 장점이 있으나 스택의 크기를 변경하기가 어렵다는 단점 ※위 문제를 해결하기위해 저장소를 동적으로 할당하여 스택을 구현하는 방법이 있음(동적 연결리스트를 이용하여 구현) 동적 할당은 구현방법이 복잡하다는 단점이 있지만 메모리를 효율적으로 사용한다는 장점을 가짐 스택 응용 1. 괄호검사 괄호..

알고리즘 2022.02.03