반응형

전체 글 829

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);매개변..

Bash Shell Script 로그 파일 작성 및 분석

Bash Shell Script 로그 파일 작성 및 분석Linux 환경에서 로그 파일을 작성하고 분석하는 것은 시스템 모니터링 및 디버깅에 매우 중요합니다. 이번 포스팅에서는 Bash 스크립트를 사용하여 로그 파일을 생성하고 이를 분석하는 방법을 알아보겠습니다.1. 로그 파일 작성하기로그 파일은 시스템에서 발생하는 이벤트를 기록한 파일로, Bash 스크립트로 손쉽게 생성할 수 있습니다. 다음은 로그 파일에 정보를 기록하는 간단한 예제입니다.기본 로그 작성 스크립트#!/bin/bash# 로그 파일 경로 설정LOG_FILE="/var/log/my_script.log"# 로그 작성 함수echo_log() { local message="$1" local timestamp=$(date "+%Y-%m-%..

그래프의 고급 탐색 - 강한 연결 요소 (Strongly Connected Components, SCC)

그래프의 고급 탐색 - 강한 연결 요소 (Strongly Connected Components, SCC)그래프 이론에서 강한 연결 요소(Strongly Connected Component, SCC)는 유향 그래프에서 특정 조건을 만족하는 노드 집합을 의미합니다. 이번 글에서는 SCC가 무엇인지 설명하고, 이를 찾기 위한 고급 알고리즘 두 가지 - Kosaraju 알고리즘과 Tarjan 알고리즘 - 을 Java와 C 예제로 구현해 보겠습니다.강한 연결 요소란?강한 연결 요소란 그래프의 모든 정점들이 서로 도달 가능한 부분 그래프를 의미합니다. 즉, 어떤 두 정점 (u, v)가 있다면, (u \rightarrow v)와 (v \rightarrow u) 경로가 모두 존재할 때 (u)와 (v)는 같은 SCC에 ..

C 표준 입출력 - `puts`와 `gets`

C 표준 입출력 - puts와 getsC 언어에서 표준 입출력(Standard I/O)을 담당하는 stdio.h 헤더 파일은 다양한 함수들을 제공하며, 그중에서 문자열 입출력을 다루는 puts와 gets는 많이 사용되는 함수입니다. 이번 포스팅에서는 puts와 gets의 동작 방식, 사용 예제, 그리고 주의해야 할 점에 대해 자세히 알아보겠습니다.1. puts 함수란?puts 함수는 문자열을 출력하는 함수로, 문자열을 출력한 후 자동으로 개행(newline)을 추가합니다.1.1 puts 함수의 정의int puts(const char *str);str: 출력할 문자열반환값: 출력이 성공하면 0 이상의 값, 실패하면 EOF (대개 -1)를 반환문자열 끝에 자동으로 개행 문자가 추가됨1.2 puts 함수의 사..

반응형