전체 글
-
[백준] 1406 에디터Problem Solving/Baekjoon Online Judge 2020. 4. 16. 20:57
✔️ 문제 링크 https://www.acmicpc.net/problem/1406 1406번: 에디터 문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 www.acmicpc.net ✔️ 문제 이해 1. 주어진 문자열에 대해 커서 관련 명령어를 수행한 결과를 출력한다. ✔️ 설계 1. 이 문제는 스택을 활..
-
[백준] 3980 선발명단Problem Solving/Baekjoon Online Judge 2020. 4. 16. 19:22
✔️ 문제 링크 https://www.acmicpc.net/problem/3980 3980번: 선발 명단 문제 챔피언스 리그 결승전을 앞두고 있는 맨체스터 유나이티드의 명장 퍼거슨 감독은 이번 경기에 4-4-2 다이아몬드 전술을 사용하려고 한다. 오늘 결승전에 뛸 선발 선수 11명은 미리 골라두었지만, 어떤 선수를 어느 포지션에 배치해야 할지 아직 결정하지 못했다. 수석코치 마이크 펠란은 11명의 선수가 각각의 포지션에서의 능력을 0부터 100가지의 정수로 수치화 했다. 0은 그 선수가 그 포지션에 적합하지 않다는 뜻이다. 이때, 모든 선수의 포지션을 정하는 www.acmicpc.net ✔️ 문제 이해 1. 11명의 축구팀을 구성해야한다. 2. 11명의 선수의 각각의 포지션에 대한 능력치가 0부터 100..
-
[백준] 1806 부분합Problem Solving/Baekjoon Online Judge 2020. 4. 16. 15:56
✔️ 문제 링크 https://www.acmicpc.net/problem/1806 1806번: 부분합 문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. 출력 첫째 줄에 구하고자 하는 최소의 길 www.acmicpc.net ✔️ 문제 이해 1. 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 있다. 2. 이 수열에서 연속된 수들의 부분..
-
[백준] 1038 감소하는 수Problem Solving/Baekjoon Online Judge 2020. 4. 15. 16:53
✔️ 문제 링크 https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. www.acmicpc.net ✔️ 문제 이해 1. 감소하는 수들은 아래와 같다. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ... 20, 21 ... 30, 31, 32 ... 40, 41, 42, 43 .... 9,876,543,21..
-
[OS] Process SynchronizationComputer Science/Operation System 2020. 4. 14. 13:12
✔️ Process Synchronization (프로세스 동기화) ◾️ Concurrency Control(병행 제어)라고 부르기도 한다. ◾️ 공유 데이터의 동시 접근은 데이터의 불일치 문제를 발생시킬 수 있다. ◾️ 일관성 유지를 위해서는 협력 프로세스간의 실행 순서를 정해주는 매커니즘이 필요하다. ✔️ Race Condition ◾️ 여러 프로세스들이 동시에 공유 데이터를 접근하는 상황 ◾️ 데이터의 최종 연산 결과는 마지막에 그 데이터를 다룬 프로세스에 따라 달라진다. ◾️ Race Condition을 막기위해서는 동시 접근을 동기화(synchronize) 해야한다. 1️⃣ Race Condition이 발생하는 예 📌 Multi-processor system에서 메모리를 공유하고 있을 때 📌 공..
-
[OS] CPU SchedulingComputer Science/Operation System 2020. 4. 10. 14:37
✔️ CPU Scheduling (CPU가 1개 있는 시스템) ◾️ CPU를 사용하려는 프로세스 사이에서 우선순위를 관리하는 작업 ◾️ CPU스케줄링을 통해 CPU 이용률, 처리량을 향상시킬 수 있다. ◾️ CPU 스케줄링을 통해 프로세스의 소요시간, 대기시간, 응답 시간을 줄일 수 있다. ◾️ I/O 작업이 빈번하게 이루어지는 프로그램이 있다. (사람하고 인터렉션을 자주하는 프로그램) ◾️ 반면, I/O 작업이 빈번하게 이루어지지 않는 프로그램이 있다. (공학 계산기 프로그램) ◾️ 위 두 프로그램에 대해 CPU를 적절히 할당 해줘야한다. (I/O 작업이 빈번하게 이루어지는 프로그램에 대해 적절히 CPU를 할당해줘야 사람 입장에서 답답하지 않다.) 컴퓨터시스템 안에 있는 I/O bound job(사람이..
-
정답을 위해 신경써야 할 것들Problem Solving/Memo 2020. 4. 9. 14:35
❗️ 변수 중복을 조심하자 ◾️ 지역변수, 전역변수, 매개변수 중복을 유의하자 ❗️ 배열 범위를 넘어서지 말자 ◾️ 할당된 배열 범위를 넘어서는 접근을 하지말자 ❗️ 입출력 형식을 유의하자 ◾️ 정확한 형태로 입력을 받고, 정확한 형태로 정답 출력을 하자 ❗️ 문제를 정확히 읽자 ◾️ 공격적인 자세로 문제를 이해하자 ◾️ 시간복잡도 공간복잡도 철저히 체크하자 ◾️ 값의 범위 조건 철저히 체크 ( ex int 값을 초과하는 결과는 long long 타입 변수에 담아야 한다.) ❗️ 중복된 코드를 피하자 ◾️ 중복된 코드가 있으면 실수 발생확률이 높아진다. ◾️ 간결한 코드를 유지함으로써 가독성을 높이고, 디버깅을 용이하게 하자 ❗️ 작성한 코드에 대해 항상 의심하자 ◾️ 한 번에 답을 맞출 확률은 낮음. ..
-
[OS] Process ManagementComputer Science/Operation System 2020. 4. 9. 12:49
✔️ 프로세스의 생성 1️⃣ 부모 프로세스가 자식 프로세스를 생성한다. 2️⃣ 프로세스는 트리구조를(계층 구조) 형성한다. 3️⃣ 프로세스는 자원을 필요로 한다. ◾ OS로부터 자원을 할당 받는다. ◾ 부모 프로세스의 자원을 공유한다. 4️⃣ 자원의 공유 ◾ 부모와 자식이 모든 자원을 공유하는 모델 ◾ 일부를 공유하는 모델 ◾ 전혀 공유하지 않는 모델 (일반적임) 5️⃣ 프로세스 수행(Excution) ◾ 부모와 자식이 공존하며 수행되는 모델 ◾ 자식이 종료될 때까지 부모가 기다리는(wait, blocked)모델 6️⃣ 프로세스 주소 공간 ◾ 자신은 부모의 공간을 복사한다. (Context까지 다 복사) ◾ 자식은 그 공간에 새로운 프로그램을 올린다. ◾ 유닉스에서는 fork() 시스템 콜로 부모를 복사..