Information Technology (114) 썸네일형 리스트형 [JAVA] Recursion 응용: 미로찾기 이번 포스팅에서는 미로가 주어졌을 때 재귀(Recursion)를 통해 경로를 찾는 방법에 대해 알아보겠습니다. 현재 위치에서 출구까지 가는 경로가 있으려면 1) 현재 위치가 출구이거나 혹은 2) 이웃한 셀들 중 하나에서 현재 위치를 지나지 않고 출구까지 가는 경로가 있거나 위의 1번과 2번을 모두 적용해서 답을 찾아야 합니다. 이동할 위치의 셀이 통로에 속한 셀이면서 2번을 적용할 수 있을 때 Recursion 실행합니다. KEY. 이 Recursion이 무한루프에 빠지지는 않는지 확인해야 합니다! 때문에 Base case가 반드시 필요합니다. 이 문제 같은 경우는 한 칸 이동을 한 다음에 다시 자신이 왔던 것으로 돌아가며 무한 루프에 빠질 위험이 존재합니다. public class Maze { priv.. [운영체제] System Structure & Program Execution(2) CPU 내부에는 레지스터 중에서 메모리의 주소를 가리키는 레지스터가 존재. CPU는 이 프로그램 카운터 레지스터가 가리키는 메모리의 위치에서 인스트럭션을 읽어와서 그 기계어를 실행. 인스트럭션 하나가 4바이트 정도. CPU가 인스트럭션 하나를 실행하면 카운터가 4가 증가(인스트럭션 하나의 크기). 특별한 일이 없으면 메모리에 있는 다음 인스트럭션을 순차적으로 실행. 하지만 어떤 호출에 의해 점프를 통해 다른 명령을 실행할 수도 있음. CPU는 인스트럭션을 처리하고 다음 인스트럭션을 처리하기 전에 꼭 인터럽트가 들어온 게 있는지 확인함. 인터럽트가 있다면 작업을 멈추고 CPU 제어권이 운영체제에게 넘어감. 그럼 운영체제 속의 커널 함수에 인터럽트를 파악하는 기능 저장. 인터럽트 벡터에 인터럽트 분류 번호와.. [React Native] Weather APP Expo -> Native 파일을 숨겨주고 휴대폰에서 테스트 가능. but Native 파일을 크게 관리하기 어려움 * App 개발 3-ways 1. Swift, C#(iOS) / JAVA, Kotlin(Android) 기반 2. 반응형 웹 페이지를 그대로 앱 안에 3. iOS, Android 모두 JavsScript 엔진을 가지고 있음. 이걸 기반. 브릿지를 이용해서 JS코드를 리액트 네이티브에게 보냄. 항상 브릿지가 있어야 해서 속도가 느려질 수 있음. 게임을 만들 땐 그리 좋지 않음; React-Native에서 모든 실행 코드는 태그 안에서 동작함. 텍스트 입력은 대신 코드 사용 why? 브릿지 때문에 container 안에서만 다른 stylesheet가 동작함 flex: 1 -> 한 칸을 전체 다.. [운영체제] System Structure & Program Execution(1) 컴퓨터의 하드웨어적인 동작 원리 메모리: CPU의 작업 공간. 기계어를 실행. CPU: 매 클럭 사이클마다 메모리에서 기계어(Instruction)를 읽어서 실행. 그리고 다음 기계어를 읽어서 처리. 레지스터: CPU 안에 존재하는 작은 저장공간. 메모리보다 속보가 빠름. I/O 디바이스에 직업 접근하지 않음. 오직 메모리와만 일함. 만약 CPU에서 디스크 등등에 접근할 필요가 생기면 device 컨트롤러에게 요청. 그럼 디스크에서 정보를 가져와서 local buffer에 저장. 이 사이에 CPU는 계속 자신의 작업 연산 처리. 하나의 프로그램을 끝내면 다음 프로그램으로 매우 빠르게 전환. 사용자 입장에서는 굉장히 interactive 하게 보임 그런데 for문, while문 등등으로 인해 무한루프에 빠.. [C언어] 연결리스트 - 다항식(2) 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) 이번 포스팅은 저번 다항식 포스팅에 이어 다항식을 다루는 여러 방법에 대해 알아보겠습니다. 0. 전체 프로세스 커맨드 void process_command() { char command_line[BUFFER_LENGTH]; char copied[BUFFER_LENGTH]; // 배열 형태의 문자열 char* command, * arg1, * arg2; while (1) { printf("$ "); if (read_line(stdin, command_line, BUFFER_LENGTH) first; while (t != NULL) { result += eval(t, x); t = t->next;// 각 Term에서 eval을 실.. [C언어] 연결리스트 - 다항식(1) 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) 이번 포스팅에서는 연결 리스트를 이용하여 다항식을 구현하는 방법에 대해 알아보겠습니다. 연결 리스트를 통해 구현하려는 다항식의 특성은 위와 같습니다. struct term// 다항식에서 차수마다 항을 구성하는 term 구조체 { int coef; // 계수 int expo; // 지수, 차수 struct term* next; }; typedef struct term Term; typedef struct Polynomial // 함수의 이름과 시작 주소를 저장하는 Polynomial 구조체 { char name;// 다항식의 이름 Term* first;// 다항식 첫번째 항의 주소 int size;// 항의 개수 } Polyno.. [React] 리액트 시작하고 사용해보기 1. 리액트 설치 2. 컴포넌트의 구조 class Movie extends Component{ // Component 클래스 상속 static propTypes = { // 부모 컴포넌트로부터 받는 값의 타입을 판단 가능 title: PropTypes.string.isRequired, // 필수로 받아야하는 값. 있는지 없는지 확인 가능 poster: PropTypes.string } render(){ return( // 자식 Component의 props 생성 {this.props.title} ) } } // 부모 -> 자식으로 props를 내려줌. props를 이용해 정보 출력 class MoviePoster extends Component{ static propTypes = { poster: Pro.. [운영체제] Introduction to Operating Systems - 협의의 운영체제 : 커널(Kernal). 운영체제의 핵심 부분으로 하드웨어가 부팅되면 항상 메모리에 상주함 - 광의의 운영체제 : 커널을 포함하여 각종 주변 시스템 유틸리티를 포함한 개념. 메모리에 상주하지 않는 독립적인 프로그램들. ex) 윈도우를 설치하면 단순히 윈도우 커널 외에 파일을 복사하는 별도의 소프트웨어 등등을 포함 운영체제의 역할 1) 자원의 효율적 관리** 2) 사용자의 편리한 이용 3) 소프트웨어 자원의 관리 1) CPU, 메모리 등등의 하드웨어 자원은 이미 주어진 것. 결정된 것. 이걸 가지고 최대한의 성능을 내게 만드는 것이 운영체제 1. 효율성-> 특정 프로그램, 사용자의 차별로 이어질 수 있음 2. 형평성 2) CPU는 매우 빠른 연산 처리 기기. CPU가 실행 중인 프로그램.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음