기술(Tech, IT)/알고리즘(Algorithm) 14

[Algorithm] Checksum (체크섬)

Checksum은 전송 또는 저장 중에 발생할 수 있는 오류를 감지하기 위해 디지털 테이블 블록에서 파생된 작은 크기의 데이터다. 기본 개념은 메시지나 파일의 내용을 기반으로 값(Checksum)을 계산한 다음 이 값을 사용해 나중에 데이터의 무결성(integrity)를 검증하는 것이다. 이 프로세스에는 데이터의 표현 역할을 하는 짧은 고정 길이 값(Checksum)을 생성하는 알고리즘을 데이터에서 실행하는 것이 포함된다. 나중에 데이터를 검색하거나 수신하면 Checksum 계산이 반복된다. 새로 계산된 Checksum이 원래 Checksum과 일치하면 일반적으로 데이터가 변경되지 않은 것으로 간주하지만, 의도적인 변조를 방지할 수 있는 것은 아니다. Checksum이 일치하지 않으면 데이터가 어떤 식으..

[Algorithm] Stack vs Heap (스택 vs 힙)

1. Stack 정의 : stack은 로컬 변수, 함수 매개변수, 반환 주소를 저장하는 메모리 영역으로, 함수 호출 관리를 수행한다. 관리 : stack은 시스템에 의해 자동으로 관리된다. 함수가 호출되면 해당 함수의 로컬 변수, 반환 주소 및 일부 관리 정보가 stack에 push된다. 함수가 반환되면 해당 정보가 stack에서 pop된다. LIFO 구조 : stack은 Last-In-First-Out (LIFO) 방식으로 작동한다. 이는 stack에 마지막으로 push 된 변수가 제일 먼저 제거된다는 의미다. 크기 : stack에는 프로그램 시작 시 설정된 제한된 크기가 있다. 사용 가능한 스택 공가보다 더 많은 공간을 사용하면 (예를 들어, 무한 재귀로 인한) stack overflow가 발생하며 ..

[Algorithm] Interactive Problem (인터랙티브 문제, 대화형 문제)

알고리즘 문제를 풀던 중 문제에 해당 문제는 Interactive Problem라는 설명이 있었고, 이 문제 유형에서 어려움을 겪어 Interactive Problem이 무엇인지 알아봤다. Interactive Problem는 실행 과정에서 작성자의 프로그램(코드)이 주어진 문제(흔히 judge라고 한다)와 상호 작용해야 하는 유형이다. 단순히 표준 입력을 읽고 표준 출력을 하는 대신, 작성자의 코드는 judge와 오가며 소통을 하게 된다. 예를 들면 아래와 같다. judge만 알고 있는 숫자 x가 있고, 문제를 푸는 사람은 못한다고 가정해보자. 그리고 judge는 x가 1에서 100 사이의 int(정수)라는 것만 알려준다. 각 단계에서 작성자는 이를 추측해 y라는 숫자를 제시하면, judge는 이 숫자..

[Algorithm] Connected Graph

정의(Definition) : A connected graph is a graph that is connected in the sense of a topological space, i.e., there is a path from any point to any other point in the graph. A graph that is not connected is said to be disconnected. This definition means that the null graph and singleton graph are considered connected, while empty graphs on n>=2 nodes are disconnected. : Connected Graph(연결 그래프)는 위상 ..