코딩 2

코딩을 잘한다는 것의 정의(정글사관학교 73일차 TIL - week 2 WIL)

What I did? 이번 주차에는 user program 과제를 해결하는데 집중했다. 이전까지는 커널 영역에서 곧바로 테스트를 돌렸다. 즉, 운영체제 단에서 작업이 잘 이뤄지고 있는지를 테스트한 것. 하지만 운영체제가 존재하는 이유는 사용자 프로그램을 보다 쉽게 돌리기 위함이다. 사용자 프로세스에서 write() 기능을 구현하기 위해 직접 입출력 장치까지 가지 않고도 시스템 콜을 이용해 운영체제가 알아서 작업할 수 있도록 일을 시키는 것을 구현하는 게 이번 주차 목표였다. 이를 위해서 했던 과제는 크게 두 가지. 첫번째는 argument passing. 명령어는 여러 가지 뜻을 담은 인자들의 집합으로 전달된다. 하지만 컴퓨터 입장에서는 그저 숫자들의 나열일 뿐이다. 따라서 컴퓨터가 이를 분리해서 각각의..

정글사관학교 31일차 TIL: 계단 오르기(#2579), 내리막길(#1520), C언어 기초

드디어 4주 간의 알고리즘 커리큘럼이 끝나는 날. 시원섭섭하다. 드디어 끝나서 후련한 마음 반, 지금부터 본격적으로 빡센 일정인 C언어 기반 커리큘럼이 다가왔다는 사실에 두려움 반. 하지만 그 알고리즘마저 해낸 마당에, 앞으로도 지금처럼 꾸역꾸역 하면 어떻게든 하겠지. 알고리즘 커리는 오늘로 끝이지만 앞으로 매일 한 문제씩 꼬박꼬박 풀 예정. 꾸준히 리뷰해야겠다. 이제 알고리즘 풀이 리뷰는 따로 카테고리를 만들어서 올릴 예정. 1. 계단 오르기(#2579) 마침 어제 풀었던 문제가 시험에 나와서 아주 기분 좋게 풀었더랬다. dp를 처음 계단을 오를 때 기점으로 생각하는 게 아니라 n번째 계단에 도착했을 때를 기점으로 거꾸로 생각하면 훨씬 간단하게 풀 수 있다. 아래 그림을 보자. n번째 계단에 도착하는 ..