반응형

전체 글 408

[백준 2577] 숫자의 개수

0) 제목 숫자의 개수BOJ의 2577 번 문제입니다.C++ 이용해서 풀었습니다. 1) 문제설명 세개의 세자리 자연수 A, B, C 가 주어집니다 A*B*C 한 결과에서0~9 까지의 숫자의 갯수가 각각 몇개인지 출력하는 문제입니다. 2) 풀이과정 세자리수 자연수 A*B*C 를 했을때 자릿 수를 생각해보면 999를 1000이라 생각하면 10^3 입니다. 이를 세번 곱하니 10^9 입니다. int가 4bytes 일때, 2^32 이니까. 2^10 == 10^3 이 세번이므로 2^30 == 10^9 과 비슷하다고 생각할 수 있습니다.그러므로 int 값 범위 안에서 해결이됩니다. 0~9 까지의 숫자를 카운트할 배열 arr을 만들고 0으로 초기화 합니다.세개의 자연수를 곱한 값을 10으로 나눈 나머지를 인식해서 해..

[C++] set container 정리 및 사용법

안녕하세요. BlockDMask 입니다 !오늘은 연관 컨테이너 set, multiset, map, multimap 중 set에 대해 학습해보겠습니다.순서는 set container -> set의 사용법 -> set의 생성자와 연산자 -> set의 멤버 함수 -> 다양한 듯 다양하지 않은 예제 순으로 정리 해보겠습니다.우선 연관컨테이너들의 공통적인 특징은 아래와 같습니다. 1. 노드 기반 컨테이너 2. 균형 이진트리로 구현 3. 멤버 변수, 생성자 등이 99프로 같습니다. 1) set container 연관 컨테이너(associative container) 중 하나입니다. 노드 기반 컨테이너 이며 균형 이진트리로 구현되어있습니다. Key라 불리는 원소들의 집합으로 이루어진 컨테이너 입니다. (원소 = ke..

[백준 11720] 숫자의 합 (아스키코드)

안녕하세요. BlockDMask 입니다.!!0) 제목 숫자의 합BOJ의 11720 번 문제입니다. 1) 문제설명 n개의 숫자가 띄어쓰기 없이 주어집니다.n개 의 숫자를 더해서 출력하면 되는 간단한 문제입니다. 2) 풀이과정 하나씩 받아야 하므로, char 타입으로 문자로 받았습니다.아스키 코드를 생각하여서'0' 을 빼서 int 타입으로 변환하여 합을 구했습니다. 3) 함수설명 간단하므로 생략하겠습니다. 4) 코드 12345678910111213141516#includeusing namespace std; int main(void){ int n; cin >> n; char ch; int sum =0; for(int i=0; i> ch; sum += (ch - '0'); } cout

[C++] list container 정리 및 사용법

안녕하세요, BlockDMask 입니다.오늘은 STL의 sequence container 의 vector, deque, list중 세번째 인 list에 대해서 알아보겠습니다.날이 정말 덥군요. 저는 시원한 카페에 앉아서 포스팅 해보도록하겠습니다. 'ㅁ'저는 자료구조를 C언어로 배웠는데요. C++의 list는 딱 더블 링크드리스트(doubly linked list)와 구조가 같습니다. 다만 C++에서는... 미리 구현되어있다는 점이 다릅니다.C에서는 자료구조를 사용하려면 처음부터 만들어서 사용했었었는데, 너무 편하고 좋네요.이렇게 도구가 많아도 제대로 사용할 줄 알아야 자신의 도구가 되겠죠?그럼 정리내용을 보러 가겠습니다. 1) list container 시퀀스 컨테이너 (sequence container..

[C++ vector] Vector-Erase

0) 제목Hackerrank의 C++ STL 카테고리의 Vector-Erase 문제입니다.C++ 사용했습니다.1) 문제설명n을 입력 받고 n개의 개수 만큼 vector의 인자를 받습니다.a를 입력받고 a번째 인자를 erase합니다.a, b를 입력받고 범위 a~b 인자를 erase 합니다.vector의 size와, 인자들을 차례로 출력합니다.2) 풀이과정erase의 두가지 쓰임새를 위한 간단한 문제입니다.v.erase(iter) 처럼 파라미터를 하나 받는 경우에는 벡터의 iter 위치의 인자를 삭제 합니다.v.erase(start, end) 처럼 파라미터를 두개 받는 경우에는 [start, end) 의 범위의 인자를 삭제 합니다.start 이상, end 미만의 범위의 인자를 삭제 한다는 뜻입니다.그림으로 ..

[C++] deque container 정리 및 사용법

1) deque container 2) deque의 사용 3) deque의 생성자와 연산자 4) deque의 멤버 함수 5) 다양한 예제 1) deque containerdeque는 vector의 단점을 보완하기 위해서 만들어진 container 입니다. deque도 vector와 마찬가지로 배열기반의 구조입니다. vector는 새로운 원소가 추가 될때 메모리 재할당 후 이전 원소를 복사하는 방식으로 인하여, 삽입시에 성능이 저하 하는 단점이 있습니다. deque는 이러한 vector의 단점을 보완하기 위해서 여러개의 메모리 블록을 할당하고하나의 블록처럼 여기는 기능을 제공합니다. deque는 메모리가 부족할때 마다 일정한 크기의 새로운 메모리 블록을 할당합니다. 그럼으로써, 이전 원소를 복사하지 않습니..

[C++] vector container 정리 및 사용법

안녕하세요. BlockDMask 입니다.오늘은 C++ STL의 sequence container 중에 정말 자주 쓰는 vector에 대해서 알아보겠습니다. 1) vector container 란?2) vector의 사용 3) vector의 생성자와 연산자4-1) vector의 멤버 함수 4-2) vector의 size와 capacity와의 관계 (중요!)5) vector의 멤버 형식 6) vector를 사용하는 다양한 예제 1) vector container 란?vector 컨테이너는 자동으로 메모리가 할당되는 배열. 이라고 생각하면 될거같습니다. 저는 C를 하다가 C++로 넘어와서 이렇게 vector 컨테이너를 처음 접하고 정말 소름이 돋았었습니다. 자동으로 메모리를 할당해주고 알아서 끝에 들어가주고 ..

[C++ protected] Rectangle Area (Inheritance)

0) 제목Hackerrank 의 C++>Inheritance 부분의 Rectangle Area 입니다.C++ 이용하여 풀었습니다.1) 문제설명간단한 문제입니다.Rectangle 클래스를 만들고 그것을 상속 받는 Rectangle Area 클래스에서 Rectangle 클래스의 멤버 변수에 접근 해라.2) 풀이과정문제에서 시키는대로만 만들면 됩니다.유도 클래스에서 기초 클래스의 멤버 변수를 직접 접근 하기 때문에, 기초 클래스의 멤버 변수를 protected로 선언해서 문제를 풀었습니다.3) 함수설명간단하게 접근 지정자에 대해 말하고 가겠습니다. C++ 에서는 3가지의 접근 지정자가 존재합니다.접근지정자(access specifier) 는 클래스 외부에서그 멤버를 접근할수 있는 허가? 범위? 를 지정하는 것..

[운영체제] 유저모드와 커널모드에 대해서.

안녕하세요, BlockDMask입니다.오늘은 운영체제의 유저모드와 커널모드에 대해서 알아보도록 하겠습니다.글로 먼저 설명을 하고, 그림을 통해서 설명하겠습니다.제가 학교에서 수강했던 Unix system programming 수업과 OS 수업에서 배운 내용을 정리했습니다.혹시 내용에 이상한 점이 있으면 댓글로 지적해주시면 감사하겠습니다.1. 커널이란?2. 디바이스 드라이버란?3. 유저모드와 커널모드란.4. 유저모드와 커널모드의 전환.5. 전체적인 흐름. 1. 커널이란? 위키피디아 에서 정의하길 "컴퓨터 과학에서 커널(Kernel)은 운영체제의 핵심 부분으로서, 운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러가시 서비스를 제공한다." 라고 정의 되어있습니다. 제가 말하고 싶은 것은, "운영체제..

[C++] STL 이란.

1) STL 이란표준 C++ 라이브러리 (Standard Template Library)프로그램에 필요한 자료구조와 알고리즘을 Template로 제공하는 라이브러리 2) STL 의 구성요소Container - 객체를 저장하는 객체, 자료구조 라고도 한다. 클래스 템플릿으로 구현되어있다. - container는 크게 sequence container, associative container로 나뉩니다. > Sequence Container 의 종류 : array (C++ 11), vector, list, deque > Associative Container 의 종류 : set, multiset, map, multimap Iterator - 포인터와 비슷한 개념으로 컨테이너의 원소를 가리키고, 가리키는 원소..

[C++] Pair 클래스 정리 및 예제 (vector, sort)

안녕하세요! BlockDMask 입니다.이번에는 C++의 Pair 클래스에 대해 간단히 정리 해보려합니다.클래스사용법, 함수 및 간단한 예제를 준비해봤습니다.감사합니다.1) Pair 클래스란.두 객체를 하나의 객체로 취급 할 수 있게 묶어주는 클래스입니다. STL에서 데이터 "쌍"을 표현할때 사용. 헤더에 존재. 2) Pair 클래스 생김새.template struct pair;template struct pair; T1 : first T2 : second 로 구분합니다.3) 멤버 함수 및 간단한 사용법.pair p 사용할 데이터 타입 1, 2를 넣고 그 타입의 pair 클래스인 p를 만듭니다. p.first : p의 첫번째 인자를 반환해 줍니다. p.second : p의 두번째 인자를 반환해 줍니다. ..

[백준 14612] 김식당 (IUPC)

안녕하세요 BlockDMask입니다.백준 알고리즘 사이트를 알게되어서,문제를 풀고 게시하려 합니다.잘부탁드립니다.0) 제목- 2017 인하대학교 프로그래밍 경진대회(IUPC) A번 김식당 입니다.- C++을 이용하여 풀었습니다. 1) 문제설명 - 초기 값으로 N(입력될 쿼리의 갯수), M(테이블의 수)가 들어옵니다.- 쿼리의 종류로는 order [int][int] sort complete [int] 가 있습니다. 2) 풀이과정- order와 sort만 보고, 배열로 풀려고 했으나, 중간 값을 삭제하는 complete 가 주어져서, 배열은 삭제 후 재 배열을 해주어야 하기 때문에 complete에 맞지 않는다고 판단하였습니다.- 그래서 중간값을 삭제해 줄 수 있고, 자동으로 동적할당을 해주는 STL vec..

[C++ 예외처리] Exceptional Server (bad_alloc, exception)

0) 제목 Hackerrank 의 C++>Classes부분의 Exceptional Server 문제입니다.C++ 이용하여 풀었습니다. 1) 문제설명 함수가 제대로 작동하는지 관련해서 예외처리 하는 문제입니다.함수가 제대로 작동하는 경우 -> 함수결과 값 출력.함수에서 메모리 할당관련 오류가 난경우 -> "Not enough memory" 출력.C++ standard 오류가 발생했을 경우 -> "Exception : S" 출력 S는 에러 메시지.C++ standard가 아닌 다른 오류가 발생했을 경우 -> "Other Exception" 출력. 2) 풀이과정 예외처리라고 하자마자 try, throw, catch가 생각났습니다.예외가 발생했을때 throw를 통해서 보내는데이때 catch에서 인자로 받을 오류..

[C 자료구조] Stack - Simple Text Editor

0) 제목Hackerrank 의 Stacks 부분의 Simple Test Editor 문제입니다. (simple하지 않았습니다. 생각을 많이했어야 하는 문제였습니다 저한테는..)C언어를 이용하여 풀었습니다.1) 문제설명Quary의 갯수 q를 받고, q만큼의 쿼리(line)을 받습니다.1입력시 append.2입력시 delete.3입력시 print4입력시 undo입니다.append는 문자열 str 을 받고, 기존에 문자열에 새 문자열을 붙입니다.delete는 int 타입의 변수 k를 받는데, 문자열의 맨 끝에서부터 k 만큼 문자를 삭제합니다.print는 int 타입의 변수 k를 받는데, 현재 문자열에서 k번째 인자를 출력합니다.undo는 인자로 받는것은 없고, 바로 전에 했던 append나 delete를 실..

[C언어] 배열포인터, 포인터배열 정리 (pointer)

안녕하세요! BlockDMask 입니다 오늘은 많이들 햇갈려 하는 array pointer pointer array pointer pointer array array pointer. C언어의 포인터 개념과 배열 개념을 조금은 알고 계셔야 내용을 이해할 수 있을 것 입니다. 포인터배열, 배열포인터를 간단하게 정리해보겠습니다. 우리나라말은 끝까지 들어보라고 하지 않씁니까. 뒤에있는게 중요하다는 뜻이죠. 포인터"배열" / 배열"포인터" 시작하겠습니다.이해를 돕기위해 직접 그림도 그렸습니다. 손그림이었는데 이번에 ppt로 바꾸어봤습니다.훨씬 이해하기 편하지 않을까 싶습니다. 1. 포인터 배열이란. 2. 배열 포인터란. 1. 포인터 배열이란 ▶ 포인터 들의 배열이다. 배열의 요소가 포인터들로 이루어져 있다. ▶ ..

반응형