[목차]310 [운영체제 - 질문정리 II] 뮤텍스&세마포어, 데드락 [뮤텍스&세마포어가 무엇인가 - 질문정리] Q. 두 방법의 차이점 중 동기화 대상의 개수말고 또 다른 차이점이 있나요? 1. 가장 큰 차이점은 동기화 대상의 갯수라고 생각을 하시면 돼요 Mutex는 동기화 대상이 only 1개일 때 사용 Semaphore는 동기화 대상이 1개 이상일 때 사용 세마포어는 뮤텍스가 될 수 있지만, 뮤텍스는 세마포어가 될 수 없다. Mutex는 0, 1로 이루어진 이진 상태를 가지므로 Binary Semaphore! 지만 카운팅 세마포어는 뮤텍스가 될수 있는거죠. Mutex는 소유하고 있는 스레드만이 이 Mutex를 해제할 수 있다. 반면, Semaphore는 A라는 스레드가 공유 자원을 사용함으로써 세마포어의 값을 감소시켰지만 다른 스레드 B가 공유자원을 사용이 끝나면 세마.. 남이 읽는 CS 2022. 6. 28. [백준 15903번 / C++ / 그리디] 카드 합체 놀이 우선순위 큐에 대한 자료구조를 알고 있으면 해당 문제는 상당히 쉽게 풀린다. #접근방법 먼저, 그리디하게 접근을 해야한다. 가장 작은수를 만들기 위해선 어떻게 해야할까? 직관적으로 생각해봤을 때도 바로 느낌이 올 것이다. 가장 작은 수부터 차례대로 더해야한다. 하지만 벡터나 배열로 생성하였을 경우 매번 오름차순으로 정렬하는 것은 번거롭다. 그렇기 때문에 우선순위 큐를 활용하자는 것이다. 즉, 카드의 개수만큼 입력받아서 최소힙으로 만들면 되는것이다. 4, 2 , 3 , 1 을 입력값으로 받았다면 1을 top 으로 가진 최소힙으로 구성되어지고 top 위치한 두개의 노드를 pop 해서 더한 결과를 두번 push 해주면 된다. 가장 작은 값이 항상 top 에 위치하는 최소힙 자료구조를 활용하면 이 문제는 쉽게 .. 백준/그리디 2022. 6. 28. [백준 5014번 / C++ / BFS] 스타트 링크 BFS 를 활용한 문제가 은근 많다. 최근 코테에서도 BFS 를 활용해서 풀었던 기억이 난다. DFS/BFS 를 응용한 문제를 파악하고 바로 풀수 있게끔 충분히 연습하자. #접근방법 이 문제의 핵심은 서두에서 언급했듯이 BFS를 활용하는 것이다. 여기서 건물의 위아래로 왔다갔다하는 것이 조금 헷갈리면 건물을 오른쪽 방향으로 누웠다고 생각해보자. 그러면 크기가 f인 배열에 현재 위치 s 에서 오른쪽(up), 왼쪽(down) 으로만 갈 수 있는데 목적지 g 에 도착하면 끝난다. 바로 응용해보면 현재 위치를 담은 좌표를 queue에 담고 너비 우선탐색을 하는것이다. 즉, 왼쪽으로 갔을 때 좌표값과 오른쪽으로 갔을 때 좌표값을 queue담으면 된다. 그리고 방문처리를 해준다. 여기서 중요한 문제는 1. 왼쪽 좌.. 백준/DFS BFS 2022. 6. 28. [백준 3020번 / C++ / 누적합] 개똥벌레 최근 프로젝트를 여러 진행하다보니 3개월 간 코테준비를 못하다가 이 문제를 시작으로 다시 준비하려고 한다. 처음 이 문제에 접근했을 때 이중 for 문을 사용했다. (오랜만이라 시간 복잡도 생각도 안하고 접근... ) 제한 시간은 1초인데, 시간 복잡도는 O(N*H) 이 걸린다. 1억번의 연산이 1초 정도니까 N ≤ 200,000, 2 ≤ H ≤ 500,000 200000*500000 = 1조? 이중 for문 돌리면 100퍼센트 시간 초과가 뜰거다. 그렇기 때문에 한번의 루프로 이 문제를 해결해야한다. 누적합을 사용해보자. #접근방법 석순이와 종유석은 bottom 과 top 에서부터 자란다. 먼저 번갈아가면서 길이가 입력한다고 하니 차례대로 bottom 벡터와 top 벡터에 입력받은 값을 인덱스로 보고 .. 백준/구현 2022. 6. 28. [백준 1874번 / C++ / 스택] 스택 수열 #접근 방법 먼저, 임의의 수열을 만들기 위해 N을 입력받고 N만큼의 수를 입력받는다. 본인은 하나의 입력값을 입력할 때 바로 Stack을 활용했다. 1. 스택이 현재 비어있지 않고 top 이 입력받은 수라면 pop 하고 '-' 추가 2. number의 현재 값이 입력받은 값보다 작다면 같을때까지 스택에 (number++) push 와 '+" 추가 3. 스택이 현재 비어있지 않고 top이 입력받은 수보다 크다면 바로 "NO" 출력 후 종료 -> "반드시 오름차순을 지키도록 한다"조건때문에 top 이 입력받은 수보다 크다는 것은 해당수열을 만들수 없다는 것을 의미. 만들수 있었으면 조건 1에서 바로 pop 되어지기때문. #include #include #include #include using namesp.. 백준/구현 2022. 6. 28. [IT 트렌드 6편] 클라우드란 무엇인가? 개념 클라우드 컴퓨팅이란 인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어 등의 컴퓨팅 서비스를 제공하는 것을 말합니다. 클라우드 라는 단어가 말해주듯, 사용자는 인터넷 통신망 어딘가에서 구름에 싸여 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)을 원하는 대로 클라우드를 통해 가져다 쓸 수 있는거죠. 구름에 싸여 있다는 것은 그 내부를 보려고 하거나 알지 않아도 내가 원하는 것을 얼마든지 꺼내어 사용할 수 있다는 거에요! 즉, 인터넷이 연결된 어디에서나 이것을 보장받을 수 있는 것이죠. 장점 1. 경제성 클라우드 서비스는 사용하고자 하는 기간을 사용자가 합리적으로 선택할 수 있다. 또한, 소프트웨어와 데이터를 클라우드에서 통합 관리한다. 소프트웨어 업데이트 작업 및 데이터 유지.. 기타/IT 트렌드 2022. 6. 20. [신입 개발자 기술 면접] 네트워크 OSI 7계층에 대해 설명해주세요 컴퓨터 사이에서 통신할 때 표준 프로토콜을 사용할 수 있도록 ISO에서 개발한 모델입니다. 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용 계층으로 구성되어 있습니다. [1계층] 물리계층은 전기, 물리 신호에 따른 계층이며 단순한 전기적 신호 전달 역할을 합니다. [2계층] 데이터 링크 계층은 P2P 간 신뢰성있는 전송을 보장하기 위한 계층이고 주소값은 MAC Address를 물리적을 할당 받습니다. [3계층] 네트워크 계층은 IP 주소 기반으로 경로를 찾아주는 계층입니다. 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달합니다. [4계층] 전송 계층은 TCP, UDP 등의 프로토콜을 통해 통신을 활성화 하는 계층입니다... 기타/기술 면접 대비 2022. 6. 20. [IT 트렌드 5편] 메타버스&블록체인&nft 메타버스, 블록체인 NFT가 만나 시너지를 창출할 수 있습니다. 첫째, 플랫폼 내 불확실했던 아이템 소유권을 블록 체인으로 증명할 수 있습니다. 메타 버스 가상세계에서 아이템에 대한 소유가 가능하다면 블록체인 기술을 통해 아이템에 대한 위변조가 불가능하며, 이를 통해 가상세계 속 자산에 대한 소유권을 증명할 수 있게 됩니다. 즉, 전 세계 이용자들에게 자신의 아이템을 알리는 수단이 되는 것이죠. 둘째, 게임 속 돈을 바깥 세상으로 꺼내는 것이 가능해집니다. 인터넷은 수많은 정보를 하나의 공간으로 가져왔고, 블록 체인은 수많은 데이터베이스를 하나의 공간으로 가져옵니다. 게임과 소셜미디어 산업에서는 독자적으로 저장되어있는 데이터베이스를 한 곳으로 모았을 때 가장 큰 시너지를 낼 수 있는 분야입니다. 이러한 .. 기타/IT 트렌드 2022. 6. 17. [IT 트렌드 4편] NFT란 무엇인가? 오늘은 NFT에 대해서 포스팅을 하려고 합니다~ 개념 NFT는 Non-Fungible Token의 줄임말로 '대체 불가능한 토큰'이라는 뜻을 가지고 있으며, 블록체인의 토큰을 다른 토큰으로 대체하는 것이 불가능한 가상 자산을 말합니다. 즉, NFT는 자산 소유권을 명확히 함으로써 게임,예술품, 부동산 등의 기존 자산을 디지털 토큰화하는 수단입니다. NFT는 블록체인을 기반으로 하고 있어 소유권과 판매 이력 등의 관련 정보가 모두 블록체인에 저장되며, 따라서 최초 발행자를 언제든 확인할 수 있어 위조 등이 불가능합니다. 또한 기존 암호화폐 등의 가상 자산이 발행처에 따라 균등한 조건을 가지고 있는 반면 NFT는 별도의 고유한 인식 값을 담고 있어 서로 교환할 수 없다는 특징을 갖고 있습니다~ 활용 사례 1.. 기타/IT 트렌드 2022. 6. 17. [IT 트렌드 3편] 인공지능이 무엇인가? 안녕하세요~ 개발자 배씨입니다ㅎㅎ 오늘은 인공지능에 대해서 포스팅해보려고 합니다! 인공지능 많이 들어보셨을텐데 구체적으로 그게 뭐지 하실수도 있어요~ 제가 인공지능에 대해서 가장 인상적으로 와닿을때가 바둑기사 이세돌을 이겼던 알파고 기억나시죠??? 그때 아 이게 인공지능이구나 라고 깨닫게 됐었죠. 찾아보니까 알파고는 초당 10만가지의 계산을 했다고 하더라구요. 근데 그 알파고를 이세돌 9단이 한판 이긴거 아시나요??? 정말 대단한 거죠. 아무튼 인공지능이 무엇인지, 그리고 이점과 문제점이 무엇이 있는지 함께 알아봅시다! 인공지능 개념 먼저 인공지능이란 학습, 문제 해결, 패턴 인식 등 인간이 지닌 지적 능력을 컴퓨팅 환경에 알고리즘을 생성하고 적용하여 구현하는 기술을 뜻합니다. 쉽게 풀자면, 컴퓨터가 사.. 기타/IT 트렌드 2022. 6. 16. 이전 1 ··· 7 8 9 10 11 12 13 ··· 31 다음 반응형