카테고리 전체보기 101

[Linked List] 1102 : 스택 (stack)

※ 해당 문제는 C언어 표준 라이브러리만 사용하여 작성한 코드와 풀이 방법입니다. Stack은 "더미"란 뜻을 가진다. 책 더미, 신문 더미 등에 사용하는 단어이다. 책 더미를 예로 들어 보자. 책 더미를 쌓았다고 했을 때, 이 책 더미에서 책을 가져오는 가장 정상적인 방법은 제일 위에 있는 책을 가져오는 방식이다. 다시 말하면 가장 먼저 들어간 책은 가장 나중에 꺼낼 수 있을 것이다. 이런 식으로 자료가 가장 밑에 쌓이고(입력). 자료를 가져올 때(출력)는 가장 위(최근)의 자료를 가져오는 자료구조를 Stack 하고 한다. 이러한 Stack의 특징 때문에 흔히 "FILO(First-In-Last-Out : 선입 후출)" 혹은 "LIFO(Last-In-First-Out : 후입 선출)"라고 한다. 그림과..

[Memory] RAM과 ROM

[Memory] RAM과 ROM 이 글은 Embedded SW 개발자로 공부하면서 가장 기본이 되는 내용인Memory의 종류에 대해서 설명한 글입니다. Memory는 간단하게 말하자면, 데이터를 기록하거나 읽기 위한 위한 저장공간 입니다. 가장 크게 메모리를 나누어 본다면, 메모리는 RAM 과 ROM으로 나뉘게 됩니다. RAM (Random Access Memory) RAM은 전원이 끊어지면 RAM의 Data는 날라가게 됩니다. 이러한 특징으로 휘발성 메모리(Volatile Memory)라 표현합니다. RAM의 종류에는 여러 가지 메모리가 존재한다. 이 글에서는 DRAM과 SRAM에 대해서 간략하게 설명하도록 하겠습니다. DRAM (Dynamic RAM) 동적 램이라 표현하며, DRAM의 경우 Memor..

[HADOOP] 하둡 (Hadoop 1.2.1) CentOS 6에 설치하기

[HADOOP] 하둡 (Hadoop 1.2.1) CentOS 6에 설치하기 이 글은 하둡 1.2.1 버전을 CentOS 6에 설치하고 실행하는 방법을 적은 글입니다. 하둡은 완전 분산 모드(Fully distributed)로 설치합니다. 완전 분산 모드는 여러대의 서버로 하둡 클러스터를 구성하는 방식입니다. 하나의 서버에 하둡을 설치하는 독립 실행 모드나 가상 분산 모드와는 달리 실제 서비스에서 사용하는 방식입니다. 설치 환경아래 사양의 서버 4대에 하둡을 설치해 보겠습니다. 네임노드(HDFS의 Master 역할을 한다. 메타데이터 정보를 가지고 있으며 데이터노드에 I/O 작업을 지시한다.), 보조네임노드(네임노드의 이미지 복제본을 유지한다.), 데이터노드(블록단위로 나뉜 데이터가 저장되는 노드이다. 블..

아카이브/Hadoop 2017.04.18

[HTTP] 쿠키와 세션

[HTTP] 쿠키와 세션 쿠키와 세션이 필요한 이유 쿠키와 세션을 이해하기 위해서는 HTTP 프로토콜에 대한 이해가 필요하다. HTTP 프로토콜은 Connectionless 하고 Stateless 한 프로토콜이다. - Connectionless : 클라이언트가 서버에 요청을 하고 서버가 클라이언트에게 응답을 보내면 접속을 끊는다. - Stateless : 통신이 끝나면 상태 정보를 유지하지 않는다. Connectionless 하고 Stateless 한 HTTP 프로토콜을 사용하면서 Server가 Client를 식별할 수 있는 방법이 필요했고 쿠키와 세션을 사용하게 되었다. HTTP는 Stateless하기 때문에 로그인 상태 정보를 유지하지 않아서 쿠키와 세션을 사용하지 않으면 게시판이나 메일을 확인할 때..

[Spark 설치] Ubuntu 14.04 Spark 설치 방법

[Spark 설치] Ubuntu 14.04 Spark 설치 방법 Java 설치 $ sudo apt-add-repository ppa:webupd8team/java$ sudo apt-get update$ sudo apt-get install oracle-java7-installer$ java -version Scala 설치 $ cd /usr/local/src/$ sudo wget http://www.scala-lang.org/files/archive/scala-2.11.8.tgz$ sudo mkdir /usr/local/src/scala$ sudo tar xvf scala-2.11.8.tgz -C /usr/local/src/scala/ # 자신의 사용하는 shell의 설정 파일을 수정할 것. (ex. zs..

아카이브/Spark 2016.05.12

[Visual Studio] 개발자를 위한 글꼴, 줄 번호 설정법

[Visual Studio] 개발자를 위한 글꼴, 줄 번호 설정법 개발자를 위한 글꼴 Consolas Visual Studio 한국어 버전의 기본 글꼴은 돋움체이지만, 돋움체보다 마이크로소프트에서 개발자 전용으로 만든 Consolas를 사용하는 것이 좋다. 아래의 표를 보면 차이를 확실하게 느낄 수 있다. 돋움체 맑은 고딕 Consolas 숫자 1, 대문자 I, 소문자 l과 대문자 O, 숫자 0이 잘 구분되지 않는 다른 글꼴에 비해 Consolas는 한 눈에 차이를 알 수 있다. 이는 오타에 의한 실수를 줄이는데 크게 도움이 된다. Consolas 글꼴 설정Visual Studio 메뉴에서 [도구]->[옵션]을 선택하고 [환경]->[글꼴 및 색]에서 글꼴을 Consolas로 선택한다. 줄 번호 설정컴파일..

[통계학] 변수와 줄기잎그림, Variable and StemPlot (R, C++)

[통계학] 변수와 줄기잎그림, Variable and StemPlot 변수 (Variable) 조사 대상의 관심이 되는 특성 혹은 결과 요소의 개별 값. 키, 몸무게, 매출액 등은 모두 변수이다. 변수는 질적 변수(qualitative variable)와 양적 변수(quantitative variable)로 분류된다. 양적 변수(quantitative variable)는 결과가 숫자로 표현되는 값이다. 몸무게, 키, 전기 요금 등이 있다. 양적 변수는 연속 변수(continuous variable)와 이산 변수(discrete variable)로 나뉘는데, 연속 변수는 무게, 높이, 시간 등 변수가 취할 수 있는 값이 셀 수 없이 많다. 반면 이산 변수는 인원 수, 월급 등 변수가 취할 수 있는 값을 셀..

[ICPC] Monotone Walkway(2015 대전 예선)

[ICPC] Monotone Walkway(2015 대전 예선) Monotone Walkway이번 ICPC 예선 문제이다. 예선 문제들 중 쉬운 문제였으며 유사한 문제가 많이 존재한다. 문제 요약첫 줄에는 테스트 케이스 개수가 주어진다. 각 테스트 케이스의 첫 줄에는 좌표의 개수가 주어지고, 개수 만큼의 좌표가 주어진다. 마지막 줄에는 출력해야 할 카페 좌표의 개수와 순서가 주어진다. 각 순서의 카페 좌표를 출력하면 된다. 풀이- 좌표를 저장할 자료구조를 정한다. 카페 좌표(x, y)는 같은 순서를 가져야 함을 명심한다.- 카페 좌표들의 x를 기준으로 오름차순 정렬한다. x가 같은 좌표들은 y 기준 오름차순 정렬한다.- (0,0)부터 마지막 카페까지 순차적으로 가면서, 바로 전 카페와 지금 위치한 카페의..

[통계학 개요] 통계학이란..

[통계학 개요] 통계학이란.. 통계학(Statistics) 정의 - 많은 양의 수치 자료를 수집하고, 정리, 요약 및 해석하는 방법을 다루는 과학의 한 분야 - 관심의 대상에 대한 자료를 수집하여, 정리, 요약하고, 이들 자료에 포함된 정보를 토대로 불확실한 사실에 대해 과학적 판단을 내릴 수 있도록 그 방법을 제시해 주는 학문 - 관측 자료를 바탕으로 추론(inference)을 하는 과학의 한 분야로서 불확실성(uncertainty)하에서 보다 합리적인 의사 결정을 하는 방법을 제시해 주는 학문 정의에 공통적으로 자료의 수집, 정리, 해석이 들어가는데, 이 세가지가 통계학의 핵심이라고 볼 수 있다. 통계학은 우리 일상에서도 쉽게 접할 수 있는데, 정당 지지율, 경제성장률, 주가지수, 연간 강수량, 제품..

[재귀 알고리즘] Computing Powers & Fast Version

[재귀 알고리즘] Computing Powers & Fast Version Computing Powers (제곱 계산하기)제곱 계산을 재귀적으로 프로그래밍 해보고 더 빨리 계산하는 법도 프로그래밍 해 보겠다.일반적인 방법,$$ p(x,n) = x^n $$$$ p(x,n) = \begin{cases} 1 & \quad \text{n=0} \quad \text{(base case)} \\ x*p(x, n-1) & \quad \text{n>0} \quad \text{(recursive step)} \\ \end{cases} $$ 1234567891011121314151617double powerRecursive(double x, int n){ // Time Complexity : O(n) if (n==0) r..