분류 전체보기 88

Chapter 01 컴퓨터 시스템 개요

오전반이 일찍 끝났다는 소식을 들은 나는 차마 열심히 수업에 안참여할 수가 없었다. 컴퓨터의 개념 컴퓨터를 학술적인 표현으로 개념하자면 EDPS라고 부른다. 대량의 데이터를 사용자가 원하는 형태로 연산하고, 논리적인 비교 및 판단을 신속 정확하게 처리할 뿐만 아니라 처리한 데이털르 저장 장치에 기억시켜 주는 시스템이다. 교수님의 뇌피셜로는 엄청나게 많은 자료를 처리하는 기기라고 한다. 데이터를 수집하여 가공 처리하고 이용한 형태로 변형하면서 유용한 과정을 얻게되는데 이를 데이터 처리라고 한다. 개인이나 단체에서 올바른 의사결정을 하기 위해서는 컴퓨터가 꼭 필요하다. 컴퓨터는 이제 더 이상의 도구가 아닌 하나의 인프라(ex. 초연결, 초지능화)로 자리 잡았다. 컴퓨터의 데이터 처리는 GIGO(Garbage..

chapter 1: Introduction (1)

70페이지의 거창한 pdf를 본 내 눈은 거친 생각과... 불안한 눈빛과 진도를 다 나가지 못해 다음 주에 이어서 수업하는 게 더 두렵다. https://parksb.github.io/article/5.html#what-operating-systems-do 운영체제란 운영체제는 계속 발전되고 있기에 공인된 정의는 없지만, 컴퓨터와 컴퓨터 사용자 간이 중재자 역할을 하는 프로그램이다. 운영체제는 짠돌이라서 짧은 시간 안에 효율적으로 일한다. 운영체제가 없으면 직접 기록해야 하는 일이 생긴다. 운영체제의 실체는 커널(Kernel)이다. 모든 커널과 커널 모듈로 구성되어있고, 같은 커널이라면 같은 운영체제로 취급한다. 컴퓨터 시스템은 하드웨어(CPU, Memory, I/O devices 등), 운영체제(Ope..

01_머신러닝 개요

1주 차 오랜만에 공부라 너무 힘들다. 내 집중력 어쩌면 좋지 교수님께서 작년보다 더 나은 수업을 위해서 과제도 줄여주시고, 선형대수에 어려움이 있는 학생들을 위해 수학 특강도 해주신다고 한다. 첫 수업이라 전체적인 흐름을 설명해 주셨는데 걱정했던 것보다 괜찮았다. 너무 겁을 많이 먹은 탓이었을까. 한 주 수업 듣고 3시간씩은 시간 투자해달라는 교수님의 말씀을 종강 때까지 지키는 학생이 한번 되어보도록 할게요. 종강기원 1일차머신 러닝(Machine Learning)명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야이다. 경험을 축적시켜 효과적인 일처리를 할 수 있도록 시스템의 구조나 파라미터를 변경한다. 파라미터는 규칙 형태로 인간이 이해하는 형태일 수도 있고 인간이 이해하지 못하..

[Algorithm] 이것이 코딩 테스트다 - 효율적인 화폐 구성

교재 : 이것이 코딩 테스트다 with 파이썬 chapter 8 다이나믹 프로그래밍 실전문제 8-5 효율적인 화폐 구성 p.226 그리디 동전문제만 풀고 싶어 효율적인 화폐 구성 문제 N가지 종류의 화폐가 있다. 이 화폐들의 개수를 최소한으로 이용해서 그 가치의 합이 M원이 되도록 하려고 한다. 이때 각 화폐는 몇 개라도 사용할 수 있으며, 사용한 화폐의 구성은 같지만 순서만 다른 것은 같은 경우로 구분한다. 예를 들어 2원, 3원 단위의 화폐가 있을 때는 15원을 만들기 위해 3원을 5개 사용하는 것이 가장 최소한의 화폐 개수이다. 입력 조건 첫째 줄에 N,M이 주어진다(1

[Algorithm] 이것이 코딩 테스트다 - 개미 전사

교재 : 이것이 코딩 테스트다 with 파이썬 chapter 8 다이나믹 프로그래밍 실전문제 8-3 개미 전사 p.220 단순해 보이지만 점화식 처음에 점화식 세우기 어려움 개미 전사 문제 개미전사는 부족한 식량을 충당하고자 메뚜기 마을의 식량창고를 몰래 공격하려고 한다. 메뚜기 마을에는 여러 개의 식량창고가 있는데 식량창고는 일직선으로 이어져 있다. 각 식량창고에는 정해진 수의 식량을 저장하고 있으며 개미 전사는 식량창고를 선택적으로 약탈하여 식량을 빼앗을 예정이다. 이때 메뚜기 정찰병들은 일직선상에 존재하는 식량창고 중에서 서로 인접한 식량창고가 공격받으면 바로 알아챌 수 있다. 따라서 개미 전사가 정찰병에게 들키지 않고 식량창고를 약탈하기 위해서는 최소한 한 칸 이상 떨어진 식량창고를 약탈해야 한다..

[Algorithm] 백준 #2110 공유기 설치 + 이것이 취업을 위한 코딩테스트다.

https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 0. 에필로그 이코테 책에 있는 문제 푸는 중..와중에 백준 골드라 더 하기 싫었다. 아무리 고민해 봐도 모르겠는 문제는 고민을 포기하고 답을 찾게 된다. 사실상 문제 자체도 이해하기가 어려웠다. 점점 바보가 되는 것 같은 건 기분 탓이겠지. 너무 꼴 보기가 싫어서 이틀에 나눠서 정리했다. 결론적으로 어떤 값을 구해야하는지를 고민했다. 입력값 자..

[ModernJS_DeepDive] 9장 타입 변환과 단축 평가

책 제목: 모던 자바스크립트 Deep Dive 저자: 이웅모 저 출판사: 위키북스 먼저 든 생각은 자바스크립트는 타입이 명시적인 타입정의가 없다는 것이었고, 자바스크립트 엔진이 해주는 일이구나 라는 생각을 했다. 타입변환이라고 하면, 보편적으로 Number → String으로 변경되는 것에 다시 깊게 공부할 필요까지는 없다고 느꼈다. 부르는 용어가 조금 생소했을 뿐... 명시적 타입 변환이 뭐라고, 하면서 더 나를 혼란스럽게 만들었다. 이번 기회를 통해 제대로 알고 가면 좋지 않을까 9.1 타입 변환 타입 변환은 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성한다. 타입 변환을 한다고해서 기존 원시 값을 직접 변경하는 것은 아니다. 자바스크립트에는 모든 값에 타입이 있고, 개발자는 타입을 변환할 수..

[ModernJS_DeepDive] 6장 데이터 타입

책 제목: 모던 자바스크립트 Deep Dive 저자: 이웅모 저 출판사: 위키북스 기본적인 타입을 다 공부하기보다 ES6부터 추가된 데이터 타입과 데이터 타입의 필요성에 대해서 중심적으로 정리해보려고 한다. 사실 타입 정리하기도 귀찮았는데, 필요성을 설명해 봐라 하면 아무 말 못 하는 나를 발견하고 마음을 바로 잡았다. 6.6 템플릿 리터럴 템플릿 리터럴은 멀티라인 문자열, 표현식 삽입, 태그드 템플릿 등 런타임에 일반 문자열로 변환되어 처리된다. 이름만 거창하게 해 놓은 것 같은 기분이 든다. 그냥 작은따옴표 같이 생긴 백틱(``)을 사용한다고 보면 된다. 멀티라인 문자열은 문자열 내에서 줄 바꿈을 허용하지 않는다은 의미이다. const str = `I want to leave the office.`;..

[ModernJS_DeepDive] 5장 표현식과 문

책 제목: 모던 자바스크립트 Deep Dive 저자: 이웅모 저 출판사: 위키북스 개념을 이해한다는 것은 바로 용어를 정확히 이해하고 설명할 수 있다는 것이다. 이번 장에서는 앞으로 자주 사용할 용어들에 대해서만 정리한다. 이번 장을 통해 처음으로 표현식인 문과 표현식이 아닌 문을 구분하는 법을 알았다. 값을 쓰기만 했지 구분할 줄은 몰랐던 것 같다. 근데 이게 그렇게 중요한지는 잘 모르겠다. 모르고 살았어도 죽진 않았겠지..? 값 : 표현식이 평가되어 생성된 결과 평가 : 식을 해석해서 값을 생성하거나 참조하는 것 리터럴 : 사람이 이해핼 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 // 숫자 리터럴 3 // 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값(3)..

[ModernJS_DeepDive] 4장 변수

책 제목: 모던 자바스크립트 Deep Dive 저자: 이웅모 저 출판사: 위키북스 모르는 것만 골라볼까, 고민하다가 아는 개념은 빠르게 넘기기로 .... 사실 모르는 게 더 많음 하다 보니까 할당 부분에서 var, let, const 차이를 알고 4장을 보는 것이 더 이해하기 좋을 것 같다는 생각을 했다. var는 아예 안쓰는데, 이 책에서 예제 설명할 때 var를 사용하여서 일단은 책에 있는 그대로 따라갔다. 4.1 변수란 무엇인가? 왜 필요한가? 아무리 복잡한 애플리케이션이더라도 *동작 방식은 다 똑같다. *동작 방식: 데이터 입력받기 > 처리하기 > 결과 출력하기 데이터를 관리하기 위해서 변수는 주요 개념이다. 10 + 20 사람은 위의 식을 계산하기 위해 아래와 같은 과정으로 결과인 30을 출력한..