일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컴퓨터공학 #c #c언어 #문자열입력
- 컴퓨터공학 #자료구조 #스택 #c++ #알고리즘 #백준문제풀이
- 컴퓨터공학 #Java #자바 #클래스 #객체 #인스턴스
- BOJ #컴퓨터공학 #C++ #알고리즘 #자료구조
- HTML #CSS
- 잔
- Today
- Total
목록전체 글 (246)
영벨롭 개발 일지
이전 글에서 운영체제에 대해 간단히 살펴보았는데요! 언급한 개념 중, Virtualization이 있었습니다. OS가 physical resource들(CPU, memory, disk, ...)을 가상화하여 각 program마다 자신만의 resource를 갖고 있다는 illusion을 제공합니다! 어떻게 CPU가 여러개라는 착각을 제공할까? OS는 CPU virtualizing(가상화)를 통해 여러 개의 가상 CPU가 존재하는 것과 같은 착각을 제공하는데요. 이때, OS는 TIme Sharing을 통해 CPU virtualizing을 합니다. Time Sharing이란 CPU 관점에서 time quantum마다 하나의 프로세스가 CPU를 점유해서 사용하는 것입니다. 말 그 대로 시간을 분할하여 마치 자신..
https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.www.acmicpc.net 이 문제는 BFS를 사용하여 해결할 수 있습니다. [풀이 과정]1. 입력된 엣지 정보로 그래프 만들기2. queue에 루트 노드 1 push3. queue에서 하나씩 pop해서 자식 노드 검사4. 자식 노드를 아직 방문하지 않았다면 ans[자식]=부모, 자식 노드 방문 표시, queue에 자식 노드 push5. queue가 empty일 때까지 3. 과 4. 반복 먼저 그래프를 만들어야 하는데 2차원 배열로 그래프를 생성하게 되면 N의 MAX 값인 1000..
Program이 실행되면 무슨 일이 생길까? 본격적으로 OS에 들어가기 앞서, Program이 실행되면 무슨 일이 생기는지 알아보겠습니다. 하나의 Running Program은 여러 instruction들을 실행 시킵니다. 즉, 프로그램 실행은 Instruction들의 실행이라고도 할 수 있습니다. 과정은 다음과 같습니다. 1. Processor(CPU)가 memory로부터 하나의 instruction으로 Fetch 합니다. 2. Decode: 이 instruction이 어떤 것인지 알아냅니다. 3. Execute: 두 수의 연산이나 memory access, 조건문 체크, 함수로 이동 등등 여러 동작을 실행합니다. 4. 실행이 끝나면 Processor는 다음 instruction으로 이동하여 위 과정을..
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 이 문제는 BFS를 사용하여 해결할 수 있습니다. M*N 크기의 토마토 농장에서 모든 토마토가 익을 때까지 걸리는 최소일은 익은 토마토로부터 시작해 그래프 탐색이 완료 되었을 때의 리프 노드 중, 최대 부모 노드의 수가 됩니다. 예시로 다음과 같은 3*3 토마토 농장을 들겠습니다. 0 0 0 0 0 0 0 0 1 index: x(col), y(row) 0 1 2 0 0 0 0 1 ..
https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 이 문제는 DFS로 해결할 수 있습니다. 먼저 각 테스트 케이스마다 너비와 높이 w, h를 입력한 뒤 크기에 맞는 지도 정보를 map에 입력합니다. 지도 정보가 모두 저장되었다면 아직 방문하지 않은 땅(1)을 찾아 dfs()를 호출합니다. 이때 dfs()는 해당 땅 위치에서 연결된 모든 땅들을 탐색합니다. dfs()가 종료되면 섬이 하나 완성되었다는 것을 나타내므로 섬의 개수 cnt를 증가시..
https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 이 문제는 재귀호출을 통한 DFS로 해결할 수 있습니다. 먼저 N*M 크기의 지도의 모든 위치에 해당하는 값을 0으로 set 해줍니다. K개의 직사각형에 대한 위치 정보가 주어지면 직사각형에 해당하는 위치를 지도에서 1로 set 해줍니다. 이제 아직 방문하지 않은 영역에서 dfs()를 호출합니다. 이때 영역의 넓이도 구해야하므로 dfs()를 호출하기 전 ret을 0으로 set한..