반응형

분류 전체보기 882

C 언어 파일 포인터와 위치 조정 - fseek, ftell, rewind

C 언어 파일 포인터와 위치 조정 - fseek, ftell, rewindC 언어에서 파일을 다룰 때 파일 포인터를 사용하여 원하는 위치로 이동하고, 현재 위치를 확인하는 기능이 필요합니다. 이를 위해 stdio.h에서 제공하는 fseek, ftell, rewind 함수를 사용할 수 있습니다.이번 글에서는 파일 포인터의 개념과 함께 fseek, ftell, rewind 함수의 사용법을 예제 코드와 함께 설명하겠습니다.1. 파일 포인터란?C 언어에서 파일은 스트림(stream)으로 관리되며, FILE * 타입의 파일 포인터를 통해 조작됩니다. 파일 포인터는 현재 파일에서 읽기/쓰기 작업을 수행할 위치를 가리킵니다.파일의 특정 위치로 이동하거나 현재 위치를 확인하려면 fseek, ftell, rewind 함..

Bash Shell Script 실행 속도 최적화

Bash Shell Script 실행 속도 최적화Bash Shell Script는 간단한 작업 자동화부터 복잡한 시스템 관리까지 다양한 용도로 사용됩니다. 하지만 스크립트가 커지고 복잡해질수록 실행 속도가 느려질 수 있습니다. 오늘은 Bash Shell Script의 실행 속도를 최적화하기 위한 실용적인 방법들을 살펴보겠습니다.1. 불필요한 프로세스 호출 줄이기문제awk, sed, grep 같은 외부 명령어는 강력하지만, 호출할 때마다 새로운 프로세스가 생성되어 실행 속도가 느려질 수 있습니다.해결 방법가능한 한 Bash 내장 기능을 사용하여 외부 명령 호출을 줄입니다.예제비효율적인 코드#!/bin/bash# 외부 명령어 호출value=$(echo "12345" | awk '{print $1}')echo..

NP 문제와 NP-완전 문제

NP 문제와 NP-완전 문제NP 문제와 NP-완전 문제는 컴퓨터 과학에서 중요한 개념으로, 특히 알고리즘의 효율성과 복잡도를 이해하는 데 있어 핵심적인 역할을 합니다. 이 글에서는 NP와 NP-완전 문제에 대한 개념을 이해하고, Java와 C로 간단한 예제를 통해 이를 더 깊이 탐구해 보겠습니다.P와 NP 문제먼저 P와 NP 문제를 설명하겠습니다. P는 다항시간 내에 해결 가능한 문제의 집합을 의미합니다. 즉, P 문제는 효율적으로 해결할 수 있는 문제들로, 입력 크기에 비례하여 계산 시간이 다항식으로 증가하는 문제들입니다.예를 들어, 정렬 알고리즘이나 최단 경로를 찾는 알고리즘 등은 모두 P 문제에 속합니다. 이러한 문제들은 입력이 주어졌을 때 다항시간 안에 해결할 수 있기 때문에 실용적으로 효율적입니..

C언어 표준 입출력 (stdio.h) - fprintf와 fscanf 사용법

C언어 표준 입출력 (stdio.h) - fprintf와 fscanf 사용법C언어에서 파일 입출력은 매우 중요한 기능 중 하나입니다. 표준 라이브러리인 stdio.h를 사용하면 파일을 읽고 쓸 수 있으며, 특히 fprintf와 fscanf는 포맷팅된 데이터를 파일에 기록하거나 읽을 때 유용합니다. 이번 포스팅에서는 fprintf와 fscanf의 기본 개념과 사용법을 살펴보고, 실용적인 예제를 통해 이해를 돕겠습니다.1. fprintf와 fscanf 개요fprintf 함수fprintf 함수는 포맷을 지정하여 파일에 데이터를 출력하는 함수입니다. printf와 비슷한 방식으로 동작하지만, 결과를 표준 출력이 아닌 파일에 기록합니다.fprintf 함수 원형int fprintf(FILE *stream, cons..

Bash Shell Script awk와 sed를 활용한 데이터 처리

Bash Shell Script awk와 sed를 활용한 데이터 처리Linux 환경에서 데이터를 처리하거나 파일 내용을 분석할 때, awk와 sed는 강력한 도구로 활용됩니다. 이 글에서는 두 명령어의 기본 개념과 주요 사용법을 알아보고, 실습 예제를 통해 활용 방법을 익혀보겠습니다.awk 소개awk는 텍스트 파일을 줄 단위로 읽고, 특정 조건에 맞는 데이터를 추출하거나 가공할 수 있는 강력한 텍스트 처리 도구입니다.awk의 기본 문법awk 'pattern { action }' filepattern: 데이터를 필터링하는 조건 (예: 특정 문자열 포함 여부).action: 조건에 맞는 데이터에 수행할 작업 (예: 출력, 계산 등).file: 처리 대상 파일.주요 필드 변수$0: 현재 줄 전체.$1, $2,..

페르마트(Fenwick Tree) 트리와 세그먼트(Segment Tree) 트리

페르마트(Fenwick Tree) 트리와 세그먼트(Segment Tree) 트리고급 데이터 구조는 복잡한 문제들을 효율적으로 해결하기 위해 필수적입니다. 특히 대규모 데이터 처리나 실시간 쿼리에서 효율성을 극대화할 수 있는 자료구조는 성능을 크게 향상시킬 수 있습니다. 오늘 소개할 고급 데이터 구조로는 페르마트 트리(Fenwick Tree, 또는 Binary Indexed Tree)와 세그먼트 트리(Segment Tree)가 있습니다. 이 두 가지 자료구조는 주로 배열에 대한 구간 합 계산이나 업데이트 작업을 효율적으로 수행하는 데 사용됩니다.페르마트 트리 (Fenwick Tree)페르마트 트리는 주로 누적 합 계산 및 부분 합 업데이트를 빠르게 수행하기 위한 자료구조입니다. 이를 통해 $O(\log n..

C 언어 표준 API - stdio.h의 파일 입출력 (fopen, fclose, fread, fwrite)

C 언어 표준 API - stdio.h의 파일 입출력 (fopen, fclose, fread, fwrite)C 언어에서 파일 입출력은 표준 라이브러리 를 통해 수행됩니다. 오늘은 파일을 열고 닫는 fopen, fclose 함수와, 파일에서 데이터를 읽고 쓰는 fread, fwrite 함수에 대해 살펴보겠습니다.1. fopen: 파일 열기fopen 함수는 파일을 열고, 해당 파일과 연관된 FILE 포인터를 반환합니다. 기본적인 사용법은 다음과 같습니다.#include int main() { FILE *fp = fopen("example.txt", "w"); if (fp == NULL) { perror("파일 열기 실패"); return 1; } printf("..

Bash Shell Script - 정규표현식과 grep

Bash Shell Script - 정규표현식과 grepLinux Bash 스크립트에서 강력한 텍스트 검색 및 처리 도구로 grep을 빼놓을 수 없습니다. 이 글에서는 정규표현식(Regular Expression)과 함께 grep을 활용하는 방법을 자세히 다룹니다. 정규표현식은 패턴 매칭을 위한 강력한 도구이며, grep은 파일 또는 문자열에서 이러한 패턴을 찾아주는 명령어입니다.1. 정규표현식이란?정규표현식은 텍스트에서 특정 패턴을 매칭하는 데 사용됩니다. 다음은 정규표현식의 기본 구성 요소입니다:1.1. 기초 패턴패턴설명.임의의 한 문자^문자열의 시작$문자열의 끝*앞 문자가 0번 이상 반복+앞 문자가 1번 이상 반복?앞 문자가 0번 또는 1번 등장[ ]문자 클래스``()그룹화1.2. 예제^Hello:..

기하 알고리즘 - 선분 교차와 볼록 껍질

기하 알고리즘 - 선분 교차와 볼록 껍질기하 알고리즘은 컴퓨터 그래픽스, 게임 개발, GIS 등 다양한 응용 분야에서 중요하게 사용되는 알고리즘입니다. 오늘은 그 중에서도 선분 교차와 볼록 껍질 문제에 대해 알아보고, Java와 C 언어를 이용하여 구현해 보겠습니다.선분 교차 (Line Segment Intersection)선분 교차 문제는 두 선분이 주어졌을 때, 이들이 교차하는지를 판별하는 문제입니다. 이를 해결하기 위해 다양한 기하학적인 알고리즘이 존재하며, 그 중 두 선분의 방향을 이용하여 판별하는 알고리즘을 살펴보겠습니다.두 선분이 교차하는지 확인하기 위해서는 다음과 같은 방법을 사용할 수 있습니다:선분의 끝점이 다른 선분의 어느 쪽에 위치하는지를 판별합니다.각 선분의 양 끝점에 대해 상대적인 ..

C 언어 표준 입출력 - `fputs`와 `fgets` 사용법

C 언어 표준 입출력 - fputs와 fgets 사용법C 언어에서 문자열을 다룰 때 표준 입출력 라이브러리인 stdio.h를 사용하면 다양한 입력 및 출력 기능을 활용할 수 있습니다. 그중에서도 fputs와 fgets 함수는 파일 및 표준 입력/출력 스트림에서 문자열을 다루는 데 매우 유용합니다. 이번 포스팅에서는 fputs와 fgets의 동작 방식과 예제 코드를 살펴보겠습니다.1. fputs 함수fputs 함수는 문자열을 출력 스트림(파일 또는 표준 출력)으로 출력하는 기능을 합니다. printf와 달리 서식 문자열을 지원하지 않으며, 개행 문자(\n)가 자동으로 추가되지 않습니다.fputs 함수의 프로토타입#include int fputs(const char *str, FILE *stream);매개변..

728x90
반응형