일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- AI
- OS
- nlp
- 알고리즘
- 킥스타트
- 그래프
- google coding competition
- CSS
- dp
- kick start
- 순열
- 파이썬
- 코딩 테스트
- 구글 킥스타트
- 운영체제
- 백준
- linux
- 브루트포스
- DFS
- 코딩테스트
- PYTHON
- 프로그래머스
- 리눅스
- 네트워크
- BFS
- 동적프로그래밍
- 딥러닝
- 코딩
- 동적 프로그래밍
- 프로그래밍
- Today
- Total
목록분류 전체보기 (312)
오뚝이개발자
본 글은 HPC Lab의 youtube 강의를 듣고 요약한 것입니다. 모든 이미지 출처 역시 HPC Lab의 pdf 수업자료입니다. 다중 프로그래밍 시스템이란? 시스템 내에 여러 개의 프로세스들이 존재하는 것 공유 자원 또는 데이터가 있을 때, 동기화와 관련된 문제 발생 가능 프로세스 동기화란? 프로세스들이 서로 정보를 공유해 공유 데이터에 관한 동작을 맞추는 것 Critical section(임계영역) 공유 데이터에 접근하는 코드 영역 Race condition : 둘 이상의 프로세스의 공유 데이터에 대한 접근 순서에 따라 결과가 달라지는 현상(경쟁한다는 의미에서 race) Mutual Exclusion(상호배제) 둘 이상의 프로세스가 동시에 critical section에 진입하는 것을 막는 것 Mu..
본 글은 HPC Lab의 youtube 강의를 듣고 요약한 것입니다. 모든 이미지 출처 역시 HPC Lab의 pdf 수업자료입니다. 다중프로그래밍이란?(Multi-programming) 스케쥴링이 필요한 이유는 다중프로그래밍 때문이다. 시스템 내에 여러 개의 프로세스가 존재하기에 이들을 효율적으로 스케쥴링 해주어야 하는 것이다. 여기서 자원을 할당할 프로세스를 선택하는 것이 스케줄링이다. 스케줄링의 목적 주된 목적은 시스템의 성능(performance) 향상 -> 효율성 증대이다. 그럼 대표적인 시스템의 성능 지표는 무엇이 있을까? 응답시간(response time) : 작업요청으로부터 응답 받을때까지의 시간(interactive or real-time system에서 중요) 처리량(throughput)..
문제설명 programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 풀이 순위를 확실히 알기 위해선 해당 사람이 이기고 진 정보의 갯수 합이 n-1개가 되어야 한다. 여기서 중요한 점은 A를 이긴 사람은 A에게 진 사람을 이기고 A에 진 사람은 A에게 이긴 사람에 진다 는 것이다. def solution(n, results): answer = 0 # win[i] : i가 이긴 사람의 집합 # lose[i] : i가 지는 사람의 집합 win, lose = {}, {} for i in range(1, n+1): win[i], lose[i] = ..
문제 programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 풀이 DP를 사용해 푸는 문제이다. 문제에서 이동은 오른쪽과 아래쪽으로만 가능하다고 했으니, 한 지점까지 올 수 있는 가능한 경로는 그 지점의 위와 왼쪽칸으로부터이다. 따라서 각 칸마다 그 칸까지 도달가능한 경로의 수를 저장하면 된다. grid라는 n x m 2차원 리스트를 만들어 (0,0)에 1을 넣고, puddle에는 -1을 넣는다. 그 후, 이중for문으..
문제 programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 � programmers.co.kr 풀이 처음엔 이분탐색을 사용하지 않고 time stamp를 찍어 반복문을 돌 때마다 시간이 1씩 경과하도록 구현하였다. 그런데 역시나 시간초과에 걸렸다. 어려웠던 부분이 어떠한 기준으로 이분탐색을 하고, 어떤 값을 탐색으로 찾아야 하는지를 정하는 것이었다. 결국 다른 블로그를 참고해서 구현하였다. 먼저 이분 탐색으로 찾아야 하는 값은 "return해야 하는 최소 소요 ..
문제 programmers.co.kr/learn/courses/30/lessons/43164# 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 풀이 처음엔 단순한 문제인줄 알고 DFS를 사용하지 않고 풀어보려 했다. 내가 생각한 방식은 이러했다. 출발점이 ICN인 것들 추출해서 도착점 알파벳 순으로 앞서는 것은 선택한다. 1에서 선택한 경로의 도착점이 출발점인 것을 골라 알파벳순으로 비교하고 선택하는 과정을 반복한다. 그런데 문제는 위와 같은 방법으로 풀이했을 때 반례가 존재한다는 것이다. [["ICN","JFK"],["ICN","..
README란? readme란 프로젝트에 대한 간단한 설명을 담고 있는 문서이다. 일반적으로 git에서 특정 레포지토리에 들어가면 가장 먼저 보이는 main page가 바로 readme이다. 이런 readme 파일은 일반적으로 markdown 문법으로 작성된다.(확장자는 md) 쉽게 말해 readme를 작성한다는 것은 구현한 프로젝트를 문서화하는 작업이다. 그렇다면 readme 파일은 도대체 왜 작성해야 할까? 나를 위해 - 시간이 지나면 자신이 작성한 코드도 다시 읽어보아야 이해가 간다. 이처럼 나중에 자신이 보았을 때에도 쉽게 이해할 수 있도록 readme를 작성해두면 도움이 된다. 함께 작업하는 동료를 위해 - 협업을 할 때 동료에게 내가 작성한 readme는 좋은 지침서가 될 수 있다. 다른 사용..
문제 문제가 조금 복잡해서 링크를 첨부하겠다. programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를�� programmers.co.kr 풀이 전공자거나 운영체제의 스케쥴링 부분을 공부한 사람이라면 소요시간이 작은 작업을 우선적으로 처리하는 것이 최적의 경우라는 것을 알 것이다. 우선순위큐를 이용하면 되는데 약간은 복잡한 조건을 고려해주어야 한다. 그러나 단순히 소요시간 기준으로 정렬해 처리하면 다른 조건들을 고려하지 못한다. 생각의 순서는 다음과 같다. ..