[백준/Silver II] 트리의 부모 찾기 - 11725
·
코딩 테스트 정복기/백준
[Silver II] 트리의 부모 찾기 - 11725문제 링크 성능 요약메모리: 139276 KB, 시간: 1184 ms분류그래프 이론, 그래프 탐색, 트리, 너비 우선 탐색, 깊이 우선 탐색제출 일자2024년 11월 1일 13:14:50문제 설명루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다.출력 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다.제출코드//https://www.acmicpc.net/problem/11725import java.io.*;..
[백준/Silver I] 트리 순회 - 1991
·
코딩 테스트 정복기/백준
[Silver I] 트리 순회 - 1991문제 링크 성능 요약메모리: 11508 KB, 시간: 68 ms분류재귀, 트리제출 일자2024년 11월 1일 12:38:20문제 설명이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오.예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식) 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식) 후위 순회한 결과 : DBEGFCA // (왼쪽 자식) (오른쪽 자식) (루트)가 된다.입력 첫째 줄에는 이진 트..
교착 상태(deadlock)와 은행원 알고리즘
·
Computer Science/Operating System
교착 상태란?두 개 이상의 프로세스나 스레드가 서로 상대방의 작업이 끝나기를 무한정 기다리며, 결국 아무것도 완료되지 않는 상태.   교착 상태의 원인 (조건)상호배제(Mutual Exclusion):  자원은 한번에 하나의 프로세스만 사용 가능점유대기(Hold and Wait): 최소 하나의 자원을 점유하고 있으며, 추가 자원을 요청하여 대기중인 프로세스가 존재비선점(Non-preemptive): 자원을 강제로 뺏을 수 없음환형 대기(Circular Wait): 대기하고 있는 프로세스들 간의 순환적인 고리가 형성됨.4가지 조건이 모두 충족되어도 교착상태는 발생하지 않을 수 있다. 그러나 4가지 조건이 모두 충족되어야 “교착상태가 일어날 수” 있다.     교착 상태 해결 방법 교착상태 예방(Preven..
[프로그래머스/level 2] 오픈채팅방 - 42888
·
코딩 테스트 정복기/프로그래머스
[level 2] 오픈채팅방 - 42888문제 링크성능 요약메모리: 172 MB, 시간: 139.56 ms구분코딩테스트 연습 > 2019 KAKAO BLIND RECRUITMENT채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 29일 02:03:07문제 설명오픈채팅방카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다.신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다."[닉네임]님이 들어왔습니다."채팅방에서 누군가 나가면 다음 메시지가 출력된다..
[프로그래머스/level 2] 메뉴 리뉴얼 - 72411
·
코딩 테스트 정복기/프로그래머스
[level 2] 메뉴 리뉴얼 - 72411문제 링크성능 요약메모리: 81.9 MB, 시간: 13.26 ms구분코딩테스트 연습 > 2021 KAKAO BLIND RECRUITMENT채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 11월 01일 01:55:25문제 설명레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다.기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성하기로 했습니다.단, 코스요리 메..
경쟁상태 해결하기 - 뮤텍스, 세마포어, 모니터
·
Computer Science/Operating System
경쟁상태 해결 조건여러 프로세스나 스레드가 공유 자원에 접근할 때 데이터의 일관성과 무결성을 보장하기 위해 아래와 같은 조건을 만족해야한다. 상호배제 (Mutual Exclusion)임계영역에 한번에 하나의 프로세스나 스레드만 접근할 수 있도록 해야함.즉, 어떤 프로세스가 임계영역에 있을 때 다른 프로세스는 그 임계영역에 들어갈 수 없음. 진행의 융통성(Progress)임계영역에 들어가려는 프로세스가 없으면, 임계영역에 들어갈 수 있는 프로세스가 이를 결정할 수 있어야 함.즉, 임계영역에 들어갈 수 있는 프로세스를 선택하는 과정이 지연되지 않고 진행되어야 함.결정은 임계영역에 있지 않은 프로세스만 참여할 수 있음. 한정 대기 (Bounded Wating)특정 프로세스가 임계영역에 들어가는 것이 무한정 지..
[백준/Silver II] N과 M (9) - 15663
·
코딩 테스트 정복기/백준
[Silver II] N과 M (9) - 15663문제 링크 성능 요약메모리: 40148 KB, 시간: 308 ms분류백트래킹제출 일자2024년 10월 24일 18:27:19문제 설명N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수 중에서 M개를 고른 수열입력 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다.출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.제출 코..
[백준/Silver III] N과 M (5) - 15654
·
코딩 테스트 정복기/백준
[Silver III] N과 M (5) - 15654문제 링크 성능 요약메모리: 83852 KB, 시간: 948 ms분류백트래킹제출 일자2024년 10월 24일 18:15:27문제 설명N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열입력 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다.출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 ..
[백준/Silver III] N과 M (2) - 15650
·
코딩 테스트 정복기/백준
[Silver III] N과 M (2) - 15650문제 링크성능 요약메모리: 11500 KB, 시간: 72 ms분류백트래킹제출 일자2024년 10월 24일 17:57:12문제 설명자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열고른 수열은 오름차순이어야 한다.입력첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.제출 코드//https://www.acmicpc.net/problem/..
공유자원과 경쟁 상태, 임계영역
·
Computer Science/Operating System
공유 자원 (Shared Resource)공유자원이란 시스템 안에서 각 프로세스, 스레드가 함께 접근할 수 있는 자원을 말한다. 공유 자원의 특징다중접근여러 프로세스나 스레드가 동시에 접근할 수 있기 때문에 관리가 필요.데이터 일관성올바르게 관리되지 않으면 데이터 일관성이 깨질 수 있음동기화 필요여러 접근을 조율하기 위한 동기화 매커니즘 필요공유 자원의 예시여러 스레드가 동시에 접근하는 전역변수여러 프로세스가 동시에 접근하는 파일메모리, 파일, 데이터베이스...  경쟁 상태 (Race Condition)두개 이상의 프로세스나 스레드가 공유 자원에 동시에 접근할 때 발생하는 문제.동시에 접근을 시도할 때 타이밍이 예상되는 결과 값에 영향을 줄 수 있는 상태. 이를 잘 해결하지 못하면 데이터 정합성, 데이터..