쾌락없는 책임 (공부)
-
운영체제 04쾌락없는 책임 (공부)/운영체제 2021. 5. 19. 14:31
본 포스트는 '신용현'교수님의 운영체제 강의를 듣고 이해, 정리한 내용들을 올린 포스트입니다. - 강의자료는 올리지 않습니다. Bounded Buffer 각자의 프로세서들은 공통된 버퍼에 접근하는 경우가 있고 이 경우 동기화를 잘 해줘야 각종 오류들을 피할 수 있습니다. Reader-Writer 문제 여러 프로세스가 데이터들을 공유할 때 단순히 읽기만 하는 프로세스가 있는 반면 쓰기를 해서 데이터를 변경하는 프로세스가 있습니다. Reader가 여러개인 경우는 큰 문제가 되지 않지만 데이터 수정을 하는 Writer가 여럿이면 데이터 변경에 있어서 제한을 둬야 합니다. Reader Writer readcount를 통해 몇명이 읽는지를 알려줌 write를 하기 전 p(wrt) = 0으로 해 읽기 불가 상태로 ..
-
프로그래머스 입국심사 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 19. 00:06
코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr #include #include #include using namespace std; long long left, right, mid, allTime; long long solution(int n, vector times) { long long answer = 0; sort(times.begin(), times.end()); left = 1; right = (long long) times[times.size() - 1] * n; while(left
-
프로그래머스 네트워크 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 18. 21:05
코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr #include #include #include using namespace std; bool visit[210]; void bfs(int start, vector computers, int n){ visit[start] = true; queue q; q.push(start); while(!q.empty()) { int temp = q.front(); q.pop(); for(int i = 0; i < n; i++){ if(!visit[i] && comput..
-
프로그래머스 N으로 표현 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 13. 20:24
코딩테스트 연습 - N으로 표현 programmers.co.kr #include #include #include using namespace std; int ans = 9; void DP(int n, int num, int count, int cur){ if(count > 8) return; if(cur == num){ ans = min(ans, count); return; } // 더하기, 붙이기, 나누기 int temp = 0; for(int i = 0; i + count < 9; i++){ temp = temp * 10 + n; // n, nn, nnn ... DP(n, num, count + 1 + i, cur + temp); DP(n, num, count + 1 + i, cur * temp); ..
-
백준 1854 K번째 최단경로 찾기 - C++ (다익스트라, 우선순위 큐)쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 11. 19:47
1854 : www.acmicpc.net/problem/1854 #include #include #include using namespace std; int n, m, k; // 도시 수, 도시간 간선 수, k번째 최단거리 수 int a, b, c; // a -> b 로 갈때 c만큼 비용 vector vec[1001]; // 인덱스 -> first까지 가는데 second만큼 비용듬 priority_queue city[1001]; int main(){ // 입력 scanf("%d %d %d", &n, &m, &k); for(int i = 0; i < m; i++){ scanf("%d %d %d", &a, &b, &c); vec[a].push_back({make_pair(b, c)}); } // 다익스트라 ..
-
백준 4781 사탕가게 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 10. 20:17
www.acmicpc.net/problem/4781 #include #include #include using namespace std; int n, c; int arr[10010]; pair candy[5001]; // 칼로리, 가격 순 double m, p; int main(){ while (true){ memset(arr, 0, sizeof(arr)); // 돈 : m, n : 사탕의 종류 cin >> n >> m; if(n == 0 && (m > c >> p; candy[i] = make_pair(c, (int)(p * 100 + 0.5)); } int intM = (int)(m * 100 + 0.5); fo..
-
유니티 2D 아이템 드랍 오브젝트 폴링으로 구현하기쾌락없는 책임 (공부)/Unity 2021. 5. 8. 20:57
오브젝트 폴링 몬스터가 아이템 드롭을 하는걸 계속 Instantiate로 생성을 하고 플레이어가 먹으면 Destroy를 하는데 이게 너무 지속되면 GC가 호출될 때 프레임이 튀는 경우가 있어 이걸 방지하기 위해 미리 오브젝트를 만들고 위치 변경만 해서 마치 '생성하는 것처럼 보이게'하는 메모리 관리 기법입니다. 운영체제 강의들을 봤을 때 메모리 단편화에 대한 관리도 골치아프니 오브젝트 폴링을 해서 메모리 관리를 하는게 공간적으로나 시간적으로나 큰 이득을 볼 수 있습니다. 그래서 이번에 리스트를 이용해 간단한 오브젝트 폴링을 만들어 봤습니다. 소스코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public c..
-
백준 1103 게임 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 6. 19:05
1103 : www.acmicpc.net/problem/1103 #include #include #include #include #define MAX 51 using namespace std; int n, m; string s; int arr[MAX][MAX]; int ans[MAX][MAX]; bool visit[MAX][MAX]; int goX[4] = { 0, 0, 1, -1 }; int goY[4] = { 1, -1, 0, 0 }; int search(int x, int y){ // 범위를 벗어나거나 구멍이면 실패 if(x = n || y = m || arr[x][y] == -1) return 0; // 사이클일 경우 무한대, -1, exit로 프로레스 종료 i..