본문 바로가기

분류 전체보기

(291)
프로그래머스, 키패드 누르기 프로그래머스, 키패드 누르기 https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분류 pass 요새 BFS문제를 많이 푸는 중이다. 2023.08.09 - [알고리즘] - 백준, 이모티콘 저번에 풀었던 최단시간 문제 이모티콘도 그렇고! 이번에는 최단거리 문제! 예전에 이문제를 이차원배열로 푼적이 있다. 2023.01.22 - [알고리즘] - 데일리 알고리즘 230120 데일리 알고리즘 230120 데일리 알고리즘 230120 프로그래머스, 키패드 ..
2.3 알고리즘의 설계 2.3 알고리즘의 설계 분할정복 분할 : 현재 문제를 같은 문제를 다루는 다수의 부분 문제로 분할한다. 정복 : 부분 문제를 재귀적으로 풀어서 정복한다. 부분 문제의 크기가 충분히 작으면 직접적인 방법으로 푼다. 결합 : 부분 문제의 해를 결합하여 원래 문제의 해가 되도록 만든다. 병합정렬 분할정복 시간복잡도 연습문제 2.3-1 2.3-2 def merge_without_sentinels(A, p, q, r): nL = q - p + 1 # Length of A[p...q] nR = r - q # Length of A[q+1...r] L = [0] * nL # Initialize arrays L and R R = [0] * nR for i in range(nL): # Copy A[p...q] into L..
스케줄링: 멀티 레벨 피드백 큐 스케줄링: 멀티 레벨 피드백 큐 MLFQ, Multi-level Feedback Queue 여러 개의 큐로 구성되며, 각각 다른 우선순위(priority level)가 배정된다. 높은 우선순위를 가진 작업(큐)가 선택된다. 📌 배운 것 MLFQ가 해결하려는 문제 짧은 작업을 먼저 실행시켜 반환시간을 최적화 대화형 사용자(화면 앞에 앉아 바로면서 프로세스 종료를 기다리는 사용자)에게 응답이 빠른 시스템이라는 느낌을 주고 싶음. 즉, 응답시간을 최적화 MLFQ 규칙 규칙 1 : Priority(A) > Priority(B)이면, A가 실행된다.(B는 실행되지 않는다.) 규칙 2 : Priority(A) = Priority(B)이면, A와 B는 RR 방식으로 실행된다. 규칙 3 : 작업이 시스템에 진입하면, ..
스케줄링: 개요 스케줄링: 개요 컴퓨터 시스템 개발 이전에 생산 관리 분야에서 개발되었으며 컴퓨터에 적용된 스케줄링 원칙! 📌 배운 것 워크로드(workload) 프로세스들이 실행되는 상황 워크로드를 잘 알수록 그에 맞게 정책을 만들 수 있을 있다. 핵심 가정 모든 작업은 같은 시간 동안 실행된다. 모든 작업은 동시에 도착한다. 각 작업은 시작되면 완료될 때까지 실행된다. 모든 작업은 CPU만 사용한다.(즉, 입출력을 수행하지 않는다.) 각 작업의 실행 시간은 사전에 알려져 있다. 스케줄링 평가 항목(평가 기준) 반환시간(Trunaround time) = 완료시간 - 도착 시간 반환시간 ⇔ 성능 지표 하지만, 성능을 높이고자 몇몇 작업의 실행을 중지하면 공정성(fairness)이 떨어진다. 📌 기본접근법 비선점(non-..
프로그래머스, 숫자짝궁 프로그래머스, 숫자짝궁 https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분류 accepted 문제 테스트 케이스 3,5,8,10 불통 테스트 케이스 11~15 시간초과 오류 풀이 예시 문제가 다 통과되서 다음 풀이가 맞는줄 알았다. X="5525" Y="1255" nums_dict = {x:0 for x in range(10)} for y in Y: if y in set(list(X)): nums_dict[int(y)] += 1 result=..
백준 1303 전쟁- 전투 백준 1303 전쟁- 전투 문제 https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 분류 그래프 pass(복습필요) 하지만, 시간 지난뒤 다시 풀어봐야 할것같다. dfs, bfs 문제는 자주 안보면 풀이법을 자꾸 까먹는것같다. 풀이 2023.08.11 - [알고리즘] - softeer, 장애물 인식 프로그램 softeer, 장애물 인식 프로그램 softeer, 장애물 인식 프로그램 문제 https://softeer.ai/p..
softeer, 장애물 인식 프로그램 softeer, 장애물 인식 프로그램 문제 https://softeer.ai/practice/info.do?idx=1&eid=409 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 풀이 pass 풀이 일단 방문했으면 방문여부를 표시해야 재방문하는 일이 없을 것이다. 2차원 region이 주어졌으면 index범위를 벗어나지 않는지도 체크해 봐야 한다. 대각선 방향은 고려하지 않아도 되므로 북동남서를 탐색했을 때, '1'이고 방문한 적 없을 경우에만 탐색한다. 우리가 원하는 값은 방문가능한 범위 카운트한 값이다. 그래서 이를 global 변수로 둔다. # 북동남서 dr = [-1, 0, 1, 0] dc = [0, 1, 0, -1] def dfs(r,c): global cn..
2.2 알고리즘 분석 2.2 알고리즘 분석 알고리즘을 실행 시, 필요한 자원 예측 메모리 통신대역 하드웨어 계산시간 RAM 모델 단일 프로세서 + RAM 캐시나 가상메모리는 고려하지 않는다. 명령어는 동시에 수행되지 않고 차례로 하나씩 실행된다. 명령어 한 행당 상수시간 소요 산술연산(덧셈, 뺄셈, 곱셈, 나눗셈, 나머지, 내림, 올림) 데이터이동 연산(읽기, 저장하기, 복사하기) 제어 연산(조건 분기, 무조건 분기, 함수 호출과 리턴) 입력크기는 수행시간에 비례한다. 최악의 경우 : 크기가 n인 입력 중 가장 오래걸리는 수행 시간 평균적인 경우 : n개의 숫자 무작위 하지만 무엇이 평균적인 입력인지 불확실한 경우, 랜덤화된 알고리즘을 사용한다. 연습문제 2.2-1 θ(n³) 2.2-2 for s = 1 to A.length..
백준, 이모티콘 백준, 이모티콘 문제 https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 풀이 set 자료구조를 이용해 방문표시를 해 이미 계산한 적있는 (screen, clipboard)는 또 계산하지 않도록 했다. 계산하는 순간 시간이 늘어나므로! (문제에서 원하는 건 최소 시간이므로) 또한 작업 순서를 순차적으로 하기 위해 queue 자료구조에에 작업 순서 저장해 popleft해가면서 차례로 계산해 나갔다. 분류 30분동안, dp로 접근해 규칙을 찾아내려고 애..
제한적 직접 실행 원리 제한적 직접 실행 원리 Limited Direct Execution 운영체제 개발자들은 프로그램을 빠르게 실행하기 위해 이 기법을 개발했다. 프로그램을 CPU상에서 그냥 직접 실행시키는 것! feat. user mode, kernel mode, system call 📌 배운 것 CPU 가상화 한 프로세스를 잠시 동안 실행하고 다른 프로세스를 또 잠깐 실행하고.. CPU 시간을 나누어 쓰므로써 가상화를 구현 해결해야 할 문제 성능저하, 시스템에 과중화 오버헤드 주지 않아야 함. 제어 문제, 자원을 효율적으로 관리 OS는 제어권을 유지하면서 성능 저하가 없도록 하는것이 궁극적인 목표이다. 제어권을 상실하게 된다면 어떤 문제가 발생할까? 한 프로세스가 영원히 실행을 계속해 컴퓨터를 장악 접근해서는 안되는 정보..