전체 글 17

[OS] Semaphore(쎄마포어)

이번 블로그는 앞 주제와 이어집니다!@!https://sehseh.tistory.com/16 [OS] Critical Section Problem, 쓰레드간 협력하나의 일을 효율적으로 처리하기 위해서는 쓰레드간 협력이 필요하다. 이러한 협력을 보장하기 위해 서로 개별적인(automic)한 연산을 수행해야한다. 예를 들어 Producer-Consumer Problem을 살펴보자.sehseh.tistory.com 그럼 이제 쎄마포어 관점에서 Critical Section Problem을 확인해보자이전 블로그에서 다뤘던 Critical Section Problem은 둘 이상의 프로세스나 스레드가 공유 자원에 동시 접근할 때 발생하는 것을 방지하는 방법이다. 이 문제를 방지하여 개별적인 연산을 수행하는 것을 S..

CS/OS 2025.08.02

[OS] Critical Section Problem, 쓰레드간 협력

하나의 일을 효율적으로 처리하기 위해서는 쓰레드간 협력이 필요하다. 이러한 협력을 보장하기 위해 서로 개별적인(automic)한 연산을 수행해야한다. 예를 들어 Producer-Consumer Problem을 살펴보자. 한 쓰레드(A)는 cnt 변수를 하나 증가시키고 다른 한 쓰레드(B)는 cnt 변수를 하나 감소시켜야한다. 처음 목표는 A가 cnt를 하나 증가시키고 B가 하나를 감소하는거라 기존값과 같은 결과가 나와야하지만 A가 증가시키는 도중에 B가 cnt 변수를 읽어 하나를 감소시켜 덮어쓴다면 기존값보다 하나 더 작게 나오는 결과가 나온다. 이러한 상황을 동시성 문제, Race Condition(두 프로세스가 동시에 같은 변수를 조작해 결과가 예측 불가능하게 되는 상황)이라 한다. 이 문제를 방지하..

CS/OS 2025.07.05

[C++] G5 백준 2302 극장 좌석

https://imseh.tistory.com/2 [C++] G5 백준 2302 극장 좌석삼성전자 하계 알고리즘 특강을 신청했고, 6/28 ~ 7/2까지 사전 문제 풀이가 있다.그간 알고리즘을 열심히 하지 않았기에, 코테 단골 알고리즘들을 한 번씩 풀어보면서 나름의 준비를(?) 하려고 한imseh.tistory.com영화 좋아하는 사람 주목!극장 좌석에 어떻게 앉을 수 있을까요?! 해당 문제에 대한 내용은 개인블로그에 있습니다 !

알고리즘 2025.06.27

[C++]G5 백준 19940 - 피자 오븐

1. 문제 링크https://www.acmicpc.net/problem/19940소요 시간 : 27분시도 횟수 : 2 2. 문제 설명난이도 : G5사용 알고리즘 : Greedy오븐의 시간을 설정하기 위해 버튼을 최소로 눌렀을 때, 문제에 정의된 기준으로(사전 순) 출력 3. 풀이 방식BFS로도 풀릴 것 같이 생긴 문제였다.하지만 솔브닥에서 그리디로 문제를 검색한 후였고 각 버튼의 횟수를 집계해서 표시해야 하고, 0.25초라는 짧은 시간 제한으로 인해 DP나 그리디로 풀어야겠다 생각했다!60 이상의 숫자에 대해서는 60으로 우선 나눠주고(큰 숫자부터 덜어내기!), 60 이내에서 최소 버튼 횟수를 찾아가기 위한 기준을 찾는데 대부분의 고민을 했던 것 같다. 0에서 올라갈지 60에서 내려올 지 결정하는 기준..

알고리즘 2025.06.22

[C++]G5 백준 12904 - A와 B

1. 문제 링크https://www.acmicpc.net/problem/12904소요 시간 : 42분시도 횟수 : 32. 문제 설명난이도 : G5사용 알고리즘 : BFS주어진 2가지의 규칙만으로 문자열 S를 T로 바꿀 수 있는지 확인하는 문제 3. 초기 풀이 방식문자열의 길이가 하나씩 길어지는 방향이고, 탐색 후에 일치하기만 하면 바로 결과값을 리턴하면 되겠다 싶었다.BFS를 활용하면 되겠다 싶었다!(탐색 과정에서 문자열 길이 조건을 준다면 DFS로도 가능할 것 같음) #include#include#include#include#includeusing namespace std;unordered_map m;bool bfs(string a, string b) { queue q; q.push(a); m[a] =..

알고리즘 2025.06.21

[C++]G5 백준 15591 - MooTube (Silver)

※문제 이름에 Silver가 있지만 난이도는 실버가 아님;;1. 문제 링크https://www.acmicpc.net/problem/15591문제 풀이 소요 시간 : 1시간 37분시도 횟수 : 3 2. 문제 설명난이도 : G5사용 알고리즘 : DFS소튜브에서 유사도에 따라 추천 가능한 영상 수를 출력하는 문제 3. 초기 풀이 방식DFS로 접근했다.첫 풀이는 아래와 같다n-1개의 유사도 정보를 토대로 모든 영상에 대해 각 영상의 유사도를 기록한다.(map 활용)q개의 질문이 들어오면,질문의 동영상마다 다른 동영상과의 유사도를 반복문을 통해 확인하여 추천 가능한 영상을 출력한다.#include#include#include#include#includeusing namespace std;vector> v[5001..

알고리즘 2025.06.20

[딥러닝] 딥러닝 공부를 위한 기반 다지기 (1)

*한국항공대학교 정재훈 교수님 강의를 참고하여 작성했습니다.자 오늘부터 딥러닝 총 정리를 해볼건데요?놀라운 사실 하나는 이 결심을 한 바로 오늘이 시험 3일전이라는 사실입니다. 그치만 뭐... 해봐야겠죠?아무튼 달려봅시당. 화이팅~! 제일 먼저 분류에 대해 알아봅시다.분류란, 데이터를 레이블링 하는 작업 왜 레이블링 해야할까요?컴퓨터는 0과 1로 이루어져있기에 무언가를 구분하는 방법도 0과 1에 차이를 주는 방법 뿐이기 때문입니다. 분류에 대한 예시를 들자면, 강아지는 (1, 0)이라는 레이블을 가지고, 고양이는 (0, 1)이라는 레이블을 가진다고 해봅시다.강아지 이미지 하나가 들어왔을때 함수를 거쳐 이 이미지에게 (1, 0)이라는 레이블링을 했다면 올바르게 분류를 한 것입니다.물론 실제 데이터의 정..

AI 2025.06.07

[Network] IPv6 & ICMP

항공대학교 최차봉 교수님의 강의를 참고하여 작성하였습니다 IPv6는 왜 고안되었을까?: 기존의 IPv4의 32bit로는 자원 고갈의 문제가 있기 때문에, 이를 늘리고자 고안함.+ IPv6는 프로세싱 속도도 증가하고, forwarding 도 금방금방 할 수 있음.+ Header를 40byte로 고정함으로써 QoS(Quality of Service)를 높임+ Source와 Destination 에서만 Fragmentation을 처리하고, 중간 라우터에서는 하지 않음.만약 너무 큰 Datagram이 오면 Error msg를 반환하고 통신하지 않는다. IPv6의 Datagram format을 IPv4와 비교하여 살펴보자.ver에는 IP의 version이 들어간다. IPv4 or IPv6priority는 감이 잘..

CS/네트워크 2025.05.28

[네트워크] Network Layer(3) - IPv4

항공대학교 최차봉 교수님의 강의를 참고하여 작성하였습니다. 전 포스팅에서 IPv4를 두고 많은 이야기를 했다.IP address를 Class로 나누어도 보고, Subnet portion을 할당해보기도 하고, 또 CIDR 방식으로 IP주소를 나누어도 보았다. 이번엔 IP 고갈 문제를 해결하기 위해 고안된 방법 중 CIDR 를 제외한 나머지 3가지 방식에 대해 알아보자! 맨 처음 IPv4가 고안된 후, 계속해서 IP 주소가 고갈될 것이라는 압박감속에 만들어낸 첫 고갈 문제 해결 방법은 전 포스팅에서 알아보았던 CIDR 방식의 IP주소 할당법이었다. 이를 통해 IP 주소를 좀 더 효율적이고 구조적으로 할당할 수 있었다. 그 뒤로 DHCP, NAT, IPv6 가 차례차례 고안되었는데, 그 중 DHCP 방식을 먼..

CS/네트워크 2025.05.26

[네트워크] Network Layer - (2) IP가 뭔데요

항공대학교 최차봉 교수님의 강의를 참고하여 작성하였습니다. 지금부터는 Internet Protocol의 주소체계에 대해 알아보자 Internet Protocol은 크게 3가지 기능이 있다. 인터넷을 활용할적의 Network Layer 구조도이다. 1. 라우팅 프로토콜 -> 경로를 결정 ( RIP, OSPF, BGP ) 2. IP 프로토콜 -> 실제 데이터 전달을 관리 3. ICMP 프로토콜 -> Internet Control Message Protocol ( Ping )=> 네트워크에 디바이스가 여러개가 있을 텐데, 그 디바이스(라우터) 끼리 데이터를 주고 받는 것에 대해 이를 제어하는 Protocol 임.소통을 할 적에, 네트워크의 어떤 경로로 왔는지, 또 얼마나 걸렸는지, 그 서버가 죽었는지 살았는..

CS/네트워크 2025.05.26