전체 글

남들의 귀감이 될때까지!!
·Algorithm/baekjoon
문제https://www.acmicpc.net/problem/5567 풀이코드 from collections import dequedef bfs(start_num,depth): global answer que = deque() que.append((start_num,depth)) while que: start_num,depth = que.popleft() visited_list[start_num] = True for i in linked_list[start_num]: if visited_list[i] != True and depth 문제접근친구관계를 저장하기 위해 linked_list 를 사용하여 친구관계를 저장한다. 이때 a..
·Algorithm/baekjoon
문제https://www.acmicpc.net/problem/17070 풀이 코드1(실패) (BFS탐색) from collections import dequen = int(input())mapp = [list(map(int, input().split())) for _ in range(n)]dx = [1, 1, 0] # 가로, 대각선, 세로 이동dy = [0, 1, 1]now = [0, 1, 2] # 0: 가로, 1: 대각선, 2: 세로dp = [[[0] * 3 for _ in range(n)] for _ in range(n)] # dp[y][x][방향] = 경로 개수 저장dp[0][1][0] = 1 # 처음 파이프 위치: (0,1)에서 가로로 시작que = deque([[0, 1, 0]]) # ..
·일상
꽤나 시간이 지난 후, 국민은행 동계인턴 회고를 작성하려합니다. 인턴십 내용은 다음과 같았습니다. AI,Data 부문 00자리수 채용이 진행됐었고, 이에 따라 서류평가와 AI역량검사 + AI면접을 기반으로 합격을 진행했습니다. 사실 학부 졸업생이라 AI,Data 부문에 과연 경쟁력이 있을지 의문이 들었지만, 자기소개서를 어찌저찌 작성하며 서류를 제출했습니다.몇일 후, AI역량검사를 진행했는데, 기본적인 게임과 인성검사 그리고 5개이상의 면접 질문을 받았습니다. 당시, 면접 질문의 난이도가 꽤나 높았던걸로 기억하는데, 알고보니 AI 면접의 결과가 서류 평가후, 면접 평가에 사용된다는 사실을 보고 난후, 알았습니다.  운이 좋게 AI,Data부문 인턴에 합격하여 2달간 국민은행 인턴십을 진행했습니다. AI,..
·Algorithm/baekjoon
문제https://www.acmicpc.net/problem/4179풀이 코드from collections import dequeimport sys# J와 F동시에 BFS시작# 탐색한 좌표를 담을 수 있는 변수 x 필요 # 해당 변수에 J와 F를 구분할 수 있는 변수 필요# 좌표를 담은 변수x를 pop하며 탐색 진행# 탐색을 한 후, 다시 x에 저장, 이때 카운티 1증가# J가 F랑 곂치면 임파서블 출력# J가 벽 외각에 도달하면 cnt 출력r,c = map(int,input().split())dx = [-1,1,0,0]dy = [0,0,-1,1]answer = "IMPOSSIBLE"def bfs(): global answer while que: # print(mapp) ..
메모리 관리컴퓨터 내의 한정 된 메모리를 극한으로 활용해야 하며 가상메모리, 메모리 할당 기법 등이 발달함. 가상 메모리가상 메모리는 메모리 관리 기법의 하나로 컴퓨터가 실제로 이용가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게 매이 큰 메모리로 보이게 만드는 것. 이때 가상적으로 주어진 주소를 가상 주소라고 하며, 실제 메모리상에 있는 주소를 실제 주소(physical address)라고 함. 가상 주소는 메모리관리 장치(MMU)에 의해 실제 주소로 변환되며, 이덕 분에 사용자는 실제 주소를 의식할 필요 없이 프로그램 구축이 가능해짐.MMU프로세스는 독립적인 메모리 공간을 가져야 되고, 자신의 공간만 접근해야함따라서 한 프로세스에게 합법적인 주소 영역을 설정하고, 잘못된 접근이 오면 trap..
메모리메모리는 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치를 말하며, 보통 RAM을 일컫어 메모리라고도 함. CPU는 계산을 담당하고, 메모리는 기억을 담당함 메모리 계층메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성되어 있음레지스터 : CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 용략 제일 적음캐시 : L1,2 캐시를 지칭함. 휘발성, 속도빠름, 기억 용략 적음주기억장치 : RAM을 지칭함, 휘발성, 속도 보통, 기억 용량 보통보조기억장치 : HDD, SDD를 일컫으며 비휘발성, 속도 낮음, 기억 용량이 많음캐시데이터를 미리 복샣 놓는 임시 저장소이자 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상(Bottle neck)을 줄이기 위한 메모리임.이를 통해 데이터를..
CPU 스케줄링CPU 스케줄러는 CPU 스케줄링에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당함. 프로그램이 실행될 때는 CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU를 줄 것인지 결정함. 이때 비선점형 알고리즘과 선점형 알고리즘으로 나뉘며 CPU를 할당함. 비선점형 방식비선점형 방식은 프로세스가 스스로 CPU 소유권을 포기하는 방식이며, 강제로 프로세스를 중지하지 않음. 따라서 context switching으로 인한 부하가 적음 FCFS(First Come First Served)큐에 도착한 순서대로 CPU를 할당함실행 시간이 짧은게 뒤로 가면 평균 대기 시간이 길어짐SJF(Shorest Job First)수행시간이 제일 짧다고 판단되는 작업을 먼저 수행함FCFS보다 평균 대기 ..
프로세스 동기화임계 영역(Critical Section)에 진입하는 프로세스를 관리하기 위해 Mutex, Semaphore방법을 사용하여 접근을 제어한다. 이때 lock을 사용하며 획득과 방출을 이용해 다중 프로세스 접근을 제어함. Semaphore(세마포어)소프트웨어상에서 Critical Section 문제를 해결하기 위한 동기화 도구간단한 정수 값과 두 가지 함수 wait(P함수) signal(V함수)로 공유 자원에 대한 접근을 처리함wait()는 자신의 차례가 올 때 까지 기다리는 함수이며, siganl()은 다음 프로세스로 순서를 넘겨주는 함수이다.OS 는 Counting/Binary 세마포를 구분한다카운팅 세마포가용한 개수를 가진 자원 에 대한 접근 제어용으로 사용되며, 세마포는 그 가용한 자원..
멀티 스레드>> 하나의 응용 프로그램에서 여러 스레드를 구성해 각 스레드가 하나의 작업을 처리하는 것 스레드들이 공유 메모리를 통해 다수의 작업을 동시에 처리하도록 진행함. 스레드는 프로세스와 달리 코드,데이터,힙은 스레드끼리 서로 공유하며, 그 외의 영역은 각각 생성됨(ex. 스택) 멀티스레딩은 프로세스 내 작업을 여러개의 스레드, 멀티스레드로 처리하는 기법이며 스레드끼리 서로 자원을 공유하기 때문에 효율성이 높음. 한 스레드가 중단(blocked) 된 상태여도 다른 스레드는 실행(running) 상태 일 수 있기 때문에 중단되지 않은 빠른 처리가 가능하며, 동시성에도 큰 장점이 있습니다. 더보기동시성 : 서로 독립적인 작업들을 작은 단위로 나누고 동시에 실행되는 것처럼 보여주는 것Thread-safe..
Shine_sunho
How to study for us