본문 바로가기
  • 개발 삽질 블로그

프로그래밍46

유클리드 호제법 유클리드 호제법 유클리드 호제법(Euclidean algorithm)은 두 수의 최대공약수(GCD)를 효율적으로 구하는 고대의 알고리즘입니다. 이 방법은 두 수를 계속해서 나눗셈과 나머지 연산을 반복함으로써 최대공약수를 찾는 방식입니다.  *코딩테스트 준비용 알고리즘 학습을 위한 것이기 때문에 수학적 증명은 생략하겠씁니당   유클리드 호제법의 과정 다음과 같은 단계로 유클리드 호제법을 통해 최대 공약수를 구할 수 있습니다.1. 두 수 a, b를 MOD2. b와 나머지로 MOD3. 나머지가 0이 되는 순간의 b가 최대 공약수   최소공배수 lcm는 gcd를 이용하여 구하는 것이 일반적입니다. 아래에 반복문을 이용하여 최소공배수와 최대공약수를 구하는 함수를 작성하였습니다.import java.io.IOExc.. 2024. 10. 12.
[C/C++] Embedded SQL Embedded SQL (임베디드 SQL)프로그램에 직접 SQL 구문을 포함시키는 방식Precompiler를 사용하여 SQL 코드를 C 코드로 변환대표적인 예로 Oracle의 Pro*C, IBM의 DB2, 그리고 Sybase의 Embedded SQL 등이 있음#include #include /* 변수 선언 */EXEC SQL BEGIN DECLARE SECTION;int employee_id;char employee_name[50];EXEC SQL END DECLARE SECTION;int main() { /* 데이터베이스 연결 */ EXEC SQL CONNECT TO 'my_database' AS 'db_conn' USER 'username' USING 'password'; /* SQL.. 2024. 5. 28.
[백준] 1018: 체스판 다시 칠하기(Java) 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 체스판 다시 칠하기 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 119183 59115 47285 49.768% 문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이.. 2024. 3. 18.
제품소프트웨어 패키징 - 제품 소프트웨어 패키징하기 제품 소프트웨어 패키지 개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징하고 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 메뉴얼을 작성하며 제품 소프트웨어에 대한 패치 개발과 업그레이드를 위해 버전관리를 수행하는 능력 1. 제품 소프트웨어 적용상의 특성 (1) 제품 소프트웨어는 개발자가 아닌 사용자 중심으로 진행된다. (2) 신규 및 변경 개발 소스를 식별하고, 이를 모듈화하여 상용 제품으로 패키징한다. (3) 고객의 편의성을 위해, 신규/변경 이력을 확인하고, 이를 버전 관리 및 릴리즈 노트 를 통해 지속적으로 관리해 간다. (4) 사용자의 실행 환경을 이해하고, 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 분류하여 패키징이 진행된다. 2. 소프트웨어 .. 2024. 2. 14.
비트마스크 알고리즘/ 집합 구현 BitMask(비트마스크) 비트마스크는 컴퓨터 과학에서 사용되는 개념으로, 비트 연산을 통해 정보를 효율적으로 처리하는 기술입니다. 비트마스크는 이진수로 표현된 비트의 상태를 이용하여 여러 가지 작업을 수행할 수 있습니다. 특정 비트 위치에 값을 설정하거나 비트를 확인하는 등의 작업이 가능합니다. 비트마스크는 주로 메모리와 연산을 효율적으로 다룰 때 사용되며, 특히 비트 연산자 AND, OR, XOR 등을 활용하여 다양한 연산을 수행합니다.비트마스크는 알고리즘 및 데이터 구조에서 자주 사용되며, 특히 상태나 특정 조건을 효율적으로 표현하고 처리하는 데에 활용됩니다. 비트 연산자 AND(&): 두 비트가 모두 1일 때만 결과가 1이 되는 연산. 특정 비트를 0으로 설정하거나 특정 비트를 확인할 때 사용ex.. 2024. 1. 28.
큐(Queue) Queue 선입선출(First In First Out; FIFO)의 자료구조로 대기열이라고도 한다 가장 먼저 들어온 데이터가 가장 먼저 나가는 구조 삽입은 맨 뒤에서만 이루어지고, 삭제는 맨 앞에서만 이루어지는 구조, 중간에 끼워넣기 X Queue 용어 enqueue(data) : 큐의 맨뒤에 데이터 삽입 dequeue: 큐의 맨앞 데이터 삭제 및 반환 front : 큐의 맨앞 데이터 rear(back): 큐 맨뒤 데이터 size: 큐 크기 가득찬 큐에 데이터를 삽입하려고 시도하면 overflow, 빈 큐에서 데이터를 삭제하려고 시도하면 underflow 발생 Queue 구현 Java에서 큐는 array나 LinkedList로 구현할 수 있음, 각자 장단점이 다름 1) Array로 구현 배열로 구현 시 .. 2023. 12. 22.