스택 5

[Java]참조 타입(이것이 자바다 Ch.5)(작성 중)

5.1 데이터 타입 분류 데이터 타입 원시 타입(Primitive type) 정수 타입 byte(1byte) char(2byte) short(2byte) int(4byte) long(8byte) 실수 타입 float double 논리 타입 boolean 참조 타입(Reference type) 배열 타입(array) 열거 타입(enum) 클래스(class) 인터페이스(Interface) 💡 참조 타입: 객체의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말함. 변수: 스택에 생성 int, double → 직접 값을 저장 객체: 힙에 생성 클래스 변수 → 힙 영역의 객체 주소 값을 갖는다. 주소를 통해 객체를 참조한다는 뜻에서 클래스 변수를 참조 타입(Reference type) 변수라..

Java 2022.05.20

PintOS Project 2 - User Program (2) Argument Passing(정글사관학교 63일차 TIL)

1. 과제 목표: Command Line Parsing process_exec() 내에 사용자 프로그램을 위한 인자를 셋업해라. 유저 프로그램을 실행하기 전에, 커널은 레지스터에다가 맨 처음 function의 argument를 저장해야 한다. process_exec()은 유저가 입력한 명령어를 수행할 수 있도록 프로그램(=process)을 메모리에 적재하고 실행하는 함수이다. 해당 프로그램은 f_name에 문자열로 저장되어 있으나 현재 상태에서 process_exec() 은 새로운 프로세스에 대한 인자 passing을 제공하지 않는다. 이 기능을 구현하는 것이 이번 과제이다. process_exec() 에 코드를 추가해서 간단히 프로그램 파일 이름을 인자로 넣는것 대신에, space가 올 때마다 단어를 ..

Pintos Project 2 - User Program (1) Introduction (정글사관학교 62일차 TIL)

이번 과제 목표 사용자 프로그램을 시스템 콜을 통해서 OS와 상호작용할 수 있도록 만들어라! userprog 디렉토리에서 작업할 것 Background 프로젝트 1에서 우리가 pintos 안에서 돌린 모든 코드는 OS 커널의 일부이다. 예를 들어, 지난 과제에서의 테스트 코드는 커널의 일부로서 동작한 것이다. 즉, system의 특권 명령에 대한 모든 접근 권한을 가진 상태이다(커널에서 돌렸으니 그럴 수밖에). 만약 우리가 사용자 프로그램을 OS 시스템 가장 윗단에서 돌렸다면? 이는 이전에 우리가 테스트를 돌릴 때와는 완전 다른 상황이다. 이번 프로젝트에서는 사용자 프로그램을 OS에서 돌리는 상황에 대해 배운다. OS는 하나 이상의 프로세스를 동작하게 한다. 이때, Pintos에서는 각 프로세스가 하나의..

정글사관학교 18일차 TIL: MOO 게임(#5904), 문자열 폭발(#9935), 스카이라인(#1933)

오늘 2주차 시험에서는 1시간 반 동안 겨우 1문제 풀었다. 공부할 때도 엄청 빡셌지만 어찌어찌 익혔다는 느낌이 없잖았는데 결과가 이러니 참담하다 싶지만..! 그래도 한 문제 푼 게 어딘가! 아자자! 잘했다! 한 걸음씩 가는 거지! 1. MOO 게임(#5904) 문제 링크는 여기. 도저히 어떻게 접근해야 좋을지 몰라, 맨 처음에는 아예 수열 자체를 구해버리려고 했다. 10^9를 넘는 가장 작은 수열을 뽑으려고 해봤는데 대략 n이 10~20 사이에서 될 것 같더라! 문제는 n=12를 넣을 때부터 연산이 뻗는다는 느낌이 들기 시작하더니 n=15쯤 가니 허송세월하고 있더라. 이렇게는 도저히 못 풀겠다 확신만 하고 끝남..^_^ 지훈이의 풀이를 공부한 내용을 정리하자면, 이 문제는 재귀로 이루어진 점화식을 길이..

정글사관학교 9일차 TIL: BFS & DFS, 큐와 스택

0. 목차 1. BFS - 큐 2. DFS - 스택 오늘은 사족 없이 빠르게 가보자. 아래와 같이 두 그래프가 있다. 보다시피 그래프 자체는 동일하다. 하지만 어디서부터 데이터를 읽어오는지 그 순서가 다르다. 1. BFS (Breath First Search) 왼쪽의 빨간 경로는 너비 우선 탐색인 BFS에 해당한다. 시작 노드에서 가까운 노드부터 순서대로 방문하는 탐색 알고리즘이다. 오른쪽의 DFS는 보다시피 경로 하나하나가 깊이를 주구장창 파는 반면, BFS에서는 시작 노드를 기준으로 동일한 레벨(=뎁스)에 있는 노드를 병렬적으로 방문하는 방식이다. 이를 구현하는 방식을 이해하려면 큐(Queue) 자료구조를 이해할 필요가 있다. 언젠가 큐와 스택을 구별하는 아주 명쾌한 설명을 읽은 적이 있는데, 큐는 ..