[바미] 별 찍기 - 10
·
하루 알고리즘(JS)
문제https://www.acmicpc.net/problem/2447 코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim();const N = parseInt(input, 10);function generateStarPattern(size) { if (size === 1) { return ['*']; } const subPattern = generateStarPattern(size / 3); const pattern = []; for (let i = 0; i  generateStarPattern(size) 함수는 재귀적으로 크기 size의 패턴을 생성해줍니다. g..
[바미] 칸토어 집합
·
하루 알고리즘(JS)
문제https://www.acmicpc.net/problem/4779코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');function generateCantorSet(N) { if (N === 0) return '-'; const prevSet = generateCantorSet(N - 1); const space = ' '.repeat(prevSet.length); return prevSet + space + prevSet;}const results = input.map(line => { const N = parseInt(line, ..
[바미] CPU 스케줄링 알고리즘
·
프로그래밍(Basic)/이론
안녕하세요. 오늘은 CPU 스케줄링 알고리즘에 대해 알아보도록 하겠습니다. CPU 스케줄링 알고리즘은 운영 체제의 핵심 기능 중 하나로, 여러 프로세스들이 CPU를 효율적으로 사용할 수 있도록 CPU 시간을 할당하는 방법입니다.FCFS (First-Come, First-Served)FCFS는 가장 단순한 CPU 스케줄링 알고리즘으로, 먼저 도착한 프로세스가 먼저 실행됩니다.줄을 서는 방식과 비슷하여, 먼저 줄을 선 사람이 먼저 서비스를 받습니다.특징비선점형 스케줄링 : 현재 실행 중인 프로세스가 자발적으로 CPU를 놓을 때까지 실행됩니다.공정성: 먼저 도착한 프로세스가 먼저 실행되므로 공정합니다.간단함: 구현이 매우 간단합니다.장단점장점: 구현이 매우 간단하며, 공정합니다.단점: Convoy effect..
[바미] 피터슨 알고리즘
·
프로그래밍(Basic)/이론
피터슨 알고리즘?피터슨 알고리즘(Peterson's Algorithm)은 두 개의 프로세스가 공유 자원에 동시에 접근하지 못하도록 하는 교착 상태를 피하기 위한 동기화 알고리즘입니다. 이 알고리즘은 상호 배제(mutual exclusion) 문제를 해결하는 데 사용되며, 프로세스가 교대로 임계 구역(critical section)에 진입할 수 있도록 보장합니다. 피터슨 알고리즘은 두 개의 프로세스 간에 작동하지만, 그 개념을 확장하면 더 많은 프로세스에서도 사용할 수 있습니다.알고리즘의 핵심피터슨 알고리즘은 두 개의 변수를 사용하여 다음과 같은 상호 배제를 구현합니다.flag 배열: 각 프로세스가 임계 구역에 들어가고자 하는 의도를 나타냅니다. 예를 들어, flag[0]는 프로세스 0의 의도를, flag..
[바미] 철학자의 식사시간 문제
·
프로그래밍(Basic)/이론
안녕하세요. 오늘은 철학자의 식사시간 문제(Dining Philosophers Problem)에 대해 알아보도록 하겠습니다. 철학자의 식사시간 문제(Dining Philosophers Problem) 는동시성 제어(concurrency control)와 관련된 전통적인 문제로, 자원 공유와 교착 상태(deadlock)의 개념을 설명하는 데 자주 사용됩니다.  이 문제는 다섯 명의 철학자가 원탁에 앉아 식사를 하려는 상황을 가정합니다. 철학자들은 생각하거나 먹는 두 가지 행동만을 하며, 스파게티를 먹기 위해서는 두 개의 포크가 필요합니다. 이때, 철학자들이 다음과 같은 규칙을 따르게 됩니다.모든 철학자는 자신의 왼쪽에 있는 포크를 먼저 집습니다.왼쪽 포크를 집은 후, 오른쪽 포크를 집습니다.두 개의 포크를..
[바미] 세마포어
·
프로그래밍(Basic)/이론
세마포어(Semaphore)?세마포어(semaphore)는 에츠허르 다익스트라(Edsger Wybe Dijkstra)가 제안한 교착 상태(DeadLock)에 대한 해법으로, 두 개의 원자적(Atomic) 함수로 제어되는 정수 변수입니다. 세마포어는 멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제어하기 위해 사용되며, 제한된 개수의 프로세스(Process)나 스레드(Thread)만이 동시에 1개의 공유 자원에 접근할 수 있도록 합니다.즉, 세마포어는 여러 사람이 동시에 사용하려고 할 때, 특정 자원을 안전하게 사용할 수 있도록 도와주는 도구입니다. 이렇게만 말하면 세마포어가 어떤 도구인 지 감이 안오시죠? 이해하기 쉽게 예를 들어 말씀드려보겠습니다. 영화관 좌석을 예로 들어 설명해보겠습니다. 영화관에 ..
[바미] LG전자, 퀄컴 및 AMD보다 반년 뒤처진 인텔 루나 레이크 CPU 공급 우려
·
카테고리 없음
LG는 경쟁사에 비해 인텔의 루나 레이크 CPU 공급에 대해 우려를 표명하며 인텔이 향후 제품에 대해 긴장하고 있는 것으로 보인다고 주장했습니다. LG가 루나레이크 CPU가 경쟁사에 반년이나 뒤처져 있다고 말하면서 차세대 CPU 출시에 관한 한 퀄컴과 AMD 뒤에 있는 인텔 LG전자 IT부문장 이윤석 전무가 대만에서 열린 컴퓨텍스 2024 행사장을 방문해 전시된 신제품을 둘러보았습니다. 그는 업계 트렌드를 살펴보고 제조업체들이 어떻게 제품 라인업을 혁신하는지 살펴보기 위해 이 행사에 참석했습니다. 인텔의 제품 일정에 대해 논의할 때 이 전문가는 곧 출시될 인텔의 루나 레이크 CPU에 대해 매우 흥미로운 주장을 펼쳤으며, 새로운 아키텍처의 데뷔에 대해 논의하고 인텔이 차세대 출시 일정에 대해 경쟁사보다 뒤..
알고리즘 수업 - 병합 정렬 1
·
하루 알고리즘(JS)
문제https://www.acmicpc.net/problem/24060 코드const fs = require('fs');const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');const [N, K] = input[0].split(' ').map(Number);const A = input[1].split(' ').map(Number);let saveCount = 0;let result = -1;function merge_sort(A, p, r) { if (p 문제 해설병합 정렬(Merge Sort)을 수행하면서 K번째 저장되는 수를 추적하는 문제입니다. 따라서 주어진 배열을 병합 정렬하면서, 저장되는 수를 카운트하고 K번째에..
[바미] 선형 보간법
·
프로그래밍(Web)/업무관련
데이터를 가지고 특정 기간별 통계, 분석을 내야할 때 특정 기간의 데이터가 null로 비어있는 경우 데이터를 자동으로 보정처리 해주면 편하겠다 싶을겁니다. 그 때 사용되는 보정 방법 중 하나가 선형 보간법이라는 방법인데 오늘은 선형 보간법에 대해 살펴보도록 하겠습니다.선형 보간법?선형 보간법은 두 개의 알려진 데이터 포인트 사이의 값을 추정하는 방법입니다이 방법은 계산이 간단하고 직관적이어서 여러 분야에서 널리 사용되고 있습니다. 예를 들어 두 점 (𝑥0, 𝑦0)와  (𝑥1, 𝑦1)이 주어졌을 때,  𝑥0와 𝑥1사이의 어떤 𝑥에 대한 𝑦값을 추정할 때선형 보간법은 아래와 같은 공식을 사용합니다. \( y = y_{0} - \left( y_{0} - y_{1} \right) \cdot \fr..
Bami
기록하며 성장하기