전체 글
-
서투른 암소(c++) - stack코딩테스트 2024. 2. 25. 18:11
https://aronglife.tistory.com/entry/AlgorithmString-서투른-암소균형잡힌-괄호-문자열 [Algorithm][String] 균형 잡힌 괄호 문자열1 순서 I. 문제 II. 접근 III. 구현 I. 문제 균형 잡힌 문자열이 될 수 있도록 뒤집어야 하는 (예를들어, 오른쪽 괄호를 왼쪽 괄호로, 또는 왼쪽 괄호를 오른쪽 괄호로 변경) 괄호 문자의 최소 수를 계 aronglife.tistory.com #include #include using namespace std; char str[100000+10]; stack st; void InputData(){ cin >> str; } int solve() { int cnt = 0; for (int i=0; str[i]; i++)..
-
정올 uniqueness(c++)코딩테스트 2024. 2. 25. 17:47
https://jungol.co.kr/problem/1133 JUNGOL history 최근 본 문제 jungol.co.kr #include #include using namespace std; int N; char S[10000+10][20+10]; int used[10010]; void InputData(){ cin >> N; for (int i=1; i> S[i]; } } void solve() { bool unique = true; for (int i=1; i
-
프로세스 동기화운영체제 2024. 2. 18. 17:45
Race condition(경쟁 상황) 동시에 여러 개의 프로세스가 동일한 데이터에 접근하여 변경하고, 그 결과가 접근 발생 순서에 의존하는 상황 이 상황을 방지하기 위해 한 순간에 하나의 프로세스만 데이터를 변경하도록 보장해야 하며, 프로세스들이 동기화되도록 할 필요성 critical section 문제 각 프로세스는 자신의 코드 안에 임계 구역(critical section)을 포함하고 있고, 그 안에서 다른 프로세스와의 공유 자원을 변경하는 등의 작업 수행 한 프로세스가 자신의 임계 구역에서 수행하는 동안 다른 프로세스는 그들의 임계 구역 안에서 실행할 수 없다. 각 프로세스는 임계 구역으로 진입하기 위한 허가 요청을 하는 코드인 entry section과 exit section이 있다. criti..
-
Threads 스레드운영체제 2024. 2. 18. 14:48
Thread 스레드는 CPU 이용의 기본 단위 스레드는 같은 프로세스에 속한 다른 스레드와 코드, data section 등을 공유한다. Multicore Programming single core 시스템 상에서 concurrency는 단순히 시간에 따라 스레드가 교대로 실행 되는 것을 의미(concurrent 병행 실행) 멀티 코어 시스템에서는 각 코어에 스레드들을 배정하므로 스레드들이 병렬적으로 수행될 수 있다. 스레드 풀 웹 서버는 요청을 받을 때마다 새로운 thread를 생성하게 되는데 생성 시에 일정 시간이 소요되고, 모든 요청마다 생성하므로 동시에 실행 가능한 최대 스레드 수를 정해야 한다. 따라서 스레드 풀을 활용해 일정 수의 스레드를 미리 pool로 만들어 놓고, pool에 있는 스레드들로..
-
프로세스운영체제 2024. 2. 18. 14:11
01. process? 프로세스는 실행 중인 프로그램이다. 프로세스는 program counter(pc), process stack, data section, heap을 포함한다. 프로그램은 디스크에 저장된 파일 같이 수동적 존재이고, 프로세스는 다음 실행 명령어를 지정하는 pc와 관련 resource set을 가진 능동적 존재이다. 프로그램이 메모리에 로드되면 프로세스가 된다. Process Control Block(PCB) PCB는 특정 프로세스 관련 정보를 갖고 있다. Process state : new, ready, running, wating, terminated 등의 프로세스 상태 Program Counter : 이 프로세스가 다음으로 실행할 명령어의 주소 가리킴 CPU Register CPU..
-
백준 연속부분최대곱(c++)코딩테스트 2024. 2. 17. 13:47
https://www.acmicpc.net/problem/2670 2670번: 연속부분최대곱 첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다. 실수는 소수점 첫째자리까지 주어지며, 0.0보다 크거나 www.acmicpc.net #include #include #include using namespace std; int N; double D[10000+10]; void InputData(){ cin >> N; for (int i=0; i> D[i]; } } double solve() { double pMax = 0; double m = 0; for (int i=0; i
-
백준 빙고(c++)코딩테스트 2024. 2. 17. 13:45
https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net #include #include using namespace std; int A[5+10][5+10]; int B[25+10]; int R[5]; int C[5]; int side1; int side2; bool visitedR[5]; bool visitedC[5]; bool visitedSide1; bool visitedSide2; map m; void InputData(){ for (int i=0; i A[..
-
코드업 행복한 수(c++)알고리즘 2024. 2. 17. 13:43
https://codeup.kr/problem.php?id=4032&rid= 행복한 수 1. 하나의 정수 n이 입력된다. (1≤n≤1,000) codeup.kr #include #include #include #include using namespace std; #define MAXN ((int)1e3) int N; vector v; void InputData(){ cin >> N; } int sum(int n) { int tmp = 0; while (n > 0) { tmp += pow(n % 10, 2); n /= 10; } return tmp; } bool isHappy(int n) { v.clear(); v.push_back(n); while (true) { n = sum(n); if (n == 1..