전체 글

프로그래밍, 알고리즘과 자료구조 그리고 각종 개발도구의 사용법을 주로 기록하고자 했으나, 어느새 생활정보도 추가하게 되었습니다.
출처 : HackerRank - Halloween Sale 문제 요약나는 s 라는 금액을 가지고 있습니다. 상품의 가격이 주어질 때, 나는 최대 몇개의 상품을 살 수 있을까요?상품의 가격은 다음과 같은 규칙을 갖고 있습니다.매달 1개의 상품이 상점에 입고됩니다. 최초에 상품의 가격은 p 입니다. 매달 d 씩 가격이 떨어집니다. 단, m 미만으로는 가격이 떨어지지 않습니다.예를 들어,p=20, d=3, m=6 로 주어졌다면 매달입고되는 상품의 가격은 다음과 같이 변합니다. 20, 17, 14, 11, 8, 6, 6, 6, 6, 6, 6 ... 첫 달은 20 이었으며 매달 3씩 줄어들지만 최소한 6의 가격 밑으로 떨어지지 않습니다.입력형식p, d , m , s 를 한줄에 공백(space)로 나누어 제공합니다..
출처 : HackerRank - Say “Hello, World!” With C++ Say “Hello, World!” With C++ 목적 C++ 를 사용하여 Hello, World! 를 화면 stdout 에 출력하는 프로그램을 작성합니다. 요구사항 입력 형식없습니다.출력 형식stdout 에 Hello, World! 를 출력합니다.예시 출력 Hello, World! 프로그램 #include #include using namespace std; int main() { cout
개요 Angular는 구글사의 Angular Team 과 개인 개발자 커뮤니티에 의해서 개발되고 있는 TypeScript 기반의 프론트앤드 웹 어플리케이션 플랫폼입니다. 2012년 최초에 소개된 AngularJS 의 후속 버전으로 AngularJS 개발팀이 AngularJS를 바탕으로 완전히 재작성 한 것입니다. HTML 을 이용하여 웹을 만들 경우, 정적인 문서를 만들게 됩니다. 이 정적인 문서에 JavaScript 를 사용하여 문서내의 요소를 동적으로 제어를 하여 웹 어플리케이션을 작성할 수 있습니다. 사용자가 버튼을 클릭하면 클릭한 결과에 따라 서버에서 데이터를 동적으로 얻어서 화면에 표시한다던지, 혹은 계산을 하여 결과를 제공한다던지 하는 예를 들수 있습니다. Angular 는 이러한 기능을 좀 ..
개요 정점(vertex, 노드, 포인트) 들과 이들 사이의 연결관계를 표현한 추상적 개념 및 자료구조 입니다.그래프의 표현은 아래의 그림과 같이 정점과 이들을 잊는 간선(edge)의 집합으로 나타냅니다. 용어 경로 간선으로 연결된 정점의 순서를 의미합니다. 순환 한 정점에서 시작하여 그 정점 자신으로 돌아오는, 길이가 3 이상인 경로를 의미합니다. 연결된 그래프 모든 정점에 대해서 그래프 내의 다른 정점과 연결된 경로가 있다면 연결된 그래프라고 부릅니다. 완전그래프 그래프의 모든 두 정점쌍이 하나의 간선으로 연결된 그래프 입니다. 트리 순환이 존재하지 않는 그래프입니다. 종류 그래프는 다음과 같이 3가지 종류로 나누어 볼 수 있습니다. 무향 그래프 (Undirected Graphs) 각 정점을 연결하는 ..
· 개발도구
개요 StackEdit 는 open-source Markdown 에디터 입니다. 특징 온라인 작업 가능 여러문서를 동시에 편집 할 수 있음 확장팩(extension)을 사용하여 UML 등 추가 사용가능 구글계정(구글드라이브)을 통한 작업 문서 동기화 구문강조 (prism.js 내장) 사용법 사이트에 접속하면 StackEdit 의 소개 및 사용법 문서가 화면에 표시됩니다. 기본적으로 왼쪽의 파일탐색(file explorer)메뉴를 사용하여 파일을 관리하고, 오른쪽의 메뉴를 사용하여 작성한 파일을 변환한다던지, 개시하는 등의 추가 작업을 할 수 있습니다.Markdown의 단점으로 표준 문법이 없기 때문에 툴에 따라 지원하는 문법이 조금씩 다릅니다. 때문에 툴 사용법 뿐만 아니라 오른쪽 메뉴의 Markdown..
개요 기본적인 자료구조는 객체를 모아 놓은 것입니다. 예를들어 집합(set)은 값의 모음이고, 관련된 연산으로는 값을 추가하고, 삭제하고, 집합내부에 값이 있는지 조사하는 것이 있을 수 있습니다. 이러한 객체를 모아 놓은 기본 자료구조로는 큐와 스택이 있습니다. 이 둘은 간단하면서 널리 사용되기 때문에 유용합니다. 이 두 자료구조를 C 언어를 이용하여 구현해보도록 하겠습니다. 스택 LIFO (Last In First Out) 정책에 기반한 자료구조입니다. 출입구를 한쪽으로만 제한한 자료구조입니다. 가장 마지막에 자료구조로 삽입된 아이템이 가장 먼저 밖으로 빠져나오는 구조입니다. 실생활에서는 먼저 엘리베이터에 탑승한 사람이 엘리베이터의 안쪽으로 밀려 들어가기 때문에 가장 나중에 내리게 되는 현상을 통해서 ..
객체 JavaScript에서 기본자료형을 제외한 모든 값은 객체입니다. 이름과 값을 한 쌍으로 묶은 데이터를 여러개 모은 것입니다. // 객체의 생성 let user = { name: "TOM", age: 10 }; console.log(user); 여기서 name과 age 는 각각 user 객체의 프로퍼티라고 부릅니다. 여기서 name 생성이 된 객체의 프로퍼티를 접근(값을 읽거나 값을 변경)할때는 . 연산자나 [] 연산자를 사용하며 프로퍼티의 이름을 이용하여 접근합니다. 대괄호 연산자에는 작은 따옴표(') 또는 큰 따옴표(") 를 사용하여 이름을 기술합니다. // 객체 프로퍼티 읽기 console.log(user.name); // 객체 프로퍼티 변경 user['age'] = 15; console.lo..
개요 앞서 밝힌 바와 같이 저는 대학을 졸업 후, 한 직장에서 쭉 C 를 사용하여 프로그램을 개발해왔습니다. 덕분에 이번에 학습 하는 JavaScript 도 제가 사용해 왔던 C 와 다른 부분을 중심으로 기술하며, 동일한 부분은 간략히 넘어가도록 하겠습니다. 앞서 구축했던 학습환경의 main.js 파일에 있는 내용을 이후 나오는 예시 코드로 교체하여 실행해 볼 수 있습니다. 변수 JavaScript의 변수는 C 와 달리 별도의 타입을 지정하지 않고, let 키워드를 사용하여 생성합니다. 참고로 이렇게 변수에 저장된 데이터의 타입을 동적으로 바꿀 수 있는 언어를 동적 타입 언어 라고 부릅니다. let message; message = "Hello"; console.log(message); 데이터타입 기본자..
쓴웃음
학습 기록