전체 글

모르는 내용 및 아는 내용 모두 꼼꼼히 복습하여 익숙해지는 그 날까지 꾸준히 공부하겠습니다.
Algorithm

[이것이 코딩테스트다] BFS 문제풀이 - 미로 탈출

문제 설명 동빈이는 N * M 크기의 직사각형 형태의 미로에 갇혀 있다. 미로에는 여러 마리의 괴물이 있어 이를 피해 탈출해야 한다. 동빈이의 위치는 (1, 1)이고 미로의 출구는 (N, M)의 위치에 존재하며 한 번에 한 칸씩 이동할 수 있다. 이때 괴물이 있는 부분은 0으로, 괴물이 없는 부분은 1로 표시되어 있다. 미로는 반드시 탈출할 수 있는 형태로 제시된다. 이때 동빈이가 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하시오. 칸을 셀 때는 시작 칸과 마지막 칸을 모두 포함해서 계산한다. 코드 from collections import deque # n, m 입력받기 n, m = map(int, input().split()) graph = [] # 그래프 모양 입력 받기 for _ in ran..

Algorithm/Boj

[백준] 1388번 : 바닥 장식 - python 풀이

문제 설명 코드 # DFS 함수 정의 def dfs(x, y): # 바닥 장식이 '-' 일 때 if graph[x][y] == '-': graph[x][y] = 1 # 해당 노드 방문처리 for _y in [1, -1]: # 좌우 노드가 '-' 모양인지 확인 Y = y + _y # 좌우 노드가 주어진 범위를 벗어나지 않고 '-' 모양이라면 재귀함수 호출 if (Y > 0 and Y < m) and graph[x][Y] == '-': dfs(x, Y) # 바닥 장식이 '|'일 때 if graph[x][y] == '|': graph[x][y] = 1 # 해당 노드 방문처리 for _x in [1, -1]: # 상하 노드가 '|' 모양인지 확인 X = x + _x # 상하 노드가 주어진 범위를 벗어나지 않고 ..

카테고리 없음

나만의 자바 기말 소스코드 정리

보호되어 있는 글입니다.

CS/OS

[쉽게 배우는 운영체제] 6장 연습문제 및 심화문제 - 정리

P323 연습문제 ✔ 2개 이상의 프로세스가 서로의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태를 무엇이라 하는가? // 교착 상태 ✔ 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는 지를 나타내는 방향성이 있는 그래프를 무엇이라 하는가? // 자원 할당 그래프 ✔ 네 가지 교착 상태 필요조건에 대해 설명하시오. // 상호 배제 - 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 한다. 비선점 - 한 프로세스가 사용 중인 자원은 다른 프로세스가 빼앗을 수없는 비선점 자원이어야 한다. 점유와 대기 - 프로세스가 어떤 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여야 한다. 원형 대기 - 점유와 대기를 하는 프로세스 간에 관계가 원(사이..

CS/OS

[쉽게 배우는 운영체제] 5장 연습문제 및 심화문제 - 정리

P287 연습문제 ✔ 프로세스 간 통신에서 데이터를 양방향으로 전송 가능하지만 동시 전송은 불가능하고 특정 시점에 한쪽 방향으로만 전송할 수 있는 통신 방식은 무엇인가? // 반양방향 통신 ✔ 상태 변화를 살펴보기 위해 반복문을 무한 실행하며 기다리는 것을 무엇이라 하는가? // 바쁜 대기 ✔ 프로세스 간 통신에서 대기가 없는 통신과 대기가 있는 통신의 예를 각각 제시하시오. // 대기가 없는 통신 : 전역 변수, 파일 대기가 있는 통신 : 파이프, 소켓 ✔ 파이프를 이용하여 통신할 때 파이프를 2개 사용하는 이유는 무엇인가? // 파이프는 단방향 통신으로 두 프로세스 간에 통신할 때 한 파이프는 한 쪽 방향으로만 데이터를 전송할 수 있습니다. 그래서 파이프를 하나 더 추가하여야 양측에서 데이터를 전송할..

CS/OS

[쉽게 배우는 운영체제] 4장 연습문제 및 심화문제 - 정리

P237 연습 문제 ✔시스템 내 전체 프로세스의 수를 조절하는 것으로, 장시 스케줄링 또는 작업 스케줄링이라 불리는 스케줄링 수준은 무엇인가? // 고수준 스케줄링 ✔ 어떤 프로세스 내에 CPU를 할당하고 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 스케줄링 수준은 무엇인가? // 저수준 스케줄링 ✔ 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링은 무엇인가? // 선점형 스케줄링 ✔ 현재 입출력을 진행하는 프로세스로, 사용자와 상호작용이 가능하여 상호작용 프로세스라고도 불리는 것은 무엇인가? // 전면 프로세스 ✔ 준비 큐에 도착한 순서대로 CPU를 할당하는 비선점형 스케줄링 알고리즘은 무엇인가? // FCFS ✔준비 큐에 있는 프로세스 중 실..

CS/OS

[쉽게 배우는 운영체제] 3장 연습문제 및 심화문제 - 정리

P.190 연습문제 ✔ 프로그램이 프로세스가 되려면 운영체제로부터 무엇을 받아야 하는가? // 프로세스 제어 블록 ✔프로세스의 상태 중 CPU를 할당받기 위해 기다리는 상태는 무엇인가? // 준비상태 ✔ 프로세스의 상태 중 입출력 작업을 하기 위해 이동하는 상태는 무엇인가? // 대기 상태 ✔ CPU 스케줄러가 준비 상태에 있는 프로세스 중 하나를 골라 CPU를 할당하는 작업을 무엇이라고 하는가? // 디스패치 ✔ 유닉스에서 ctrl+z 키를 눌러 프로세스가 중단되면 프로세스는 어떤 상태로 바뀌는가? // 휴식 상태 ✔ 실행 상태에서 하나의 프로세스가 나가고 새로운 프로세스가 들어오는 상황을 무엇이라고 하는가? // 문맥 교환 ✔ 실행 중인 프로세스로부터 새로운 프로세스를 복사하는 시스템 호출은 무엇인가..

CS/OS

[쉽게 배우는 운영체제] 2장 연습문제 및 심화문제 - 정리

P.123 연습문제 ✔ CPU의 구성에 대해 설명하시오. // 연산장치 - 데이터를 연산한다. 제어장치 - 작업을 지시하는 장치이다. 명령어를 해석하고 제어 신호를 보내고 CPU 내의 데이터 흐름을 조절한다. 레지스터 - CPU 내에 데이터를 임시로 보관하는 곳이다. CPU가 연산을 하려면 데이터를 메모리에서 레지스터로 가져와야 한다. ✔ 폰노이만 구조의 가장 중요한 특징을 설명하시오. // 모든 프로그램은 실행되기 위해서 메모리에 올라와야 한다. ✔ 버스의 종류를 나열하시오. // 제어 버스, 주소 버스, 데이터 버스 ✔ 단방향 버스에 대해 설명하시오. // 데이터에 흐름이 한 방향으로만 흐르는 것을 의미합니다. 주소 버스가 단방향 버스인데, CPU에서 메모리나 저장 장치의 데이터를 읽거나 쓸 때 어느..

kylo
오늘도 열심히 - BE