전체보기 436

[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. 포인터 배열이란 ▶ 포인터 들의 배열이다. 배열의 요소가 포인터들로 이루어져 있다. ▶ ..

[C++] 예외처리 (Exception Handling, try catch)

1) "예외 상황" 과 "예외 처리" 란.예외 상황 : 예외(Exception)는 언어상의 문법적인 오류가 아니라 내가 의도한, 구현한 프로그램의 논리에 맞지 않는 상황을 말합니다. 이러한 예외 상황에서, 특별한 처리를 하는 것을 예외처리(Exception Handling)이라 합니다.ex) 나눗셈을 할때 나누는 수 가 0으로 입력되는 경우를 "예외 상황" 이라 하고, 이에 대해 다시 입력을 받거나 프로그램을 종료하는 방법을 정의해주는 것을 "예외 처리"라고 할 수 있습니다. 2) "예외 처리"를 위한 방법.사실 우리는 조건문(if)를 통해서 이전부터 예외처리를 해왔었습니다. 하지만, C++언어에서 예외 처리를 위해 제공하는 메커니즘이 존재합니다. 조건문(if)를 통해서 예외 처리하는 방법도 좋지만, 이..

[유클리드 알고리즘] GCD 최대공약수 (반복문, 재귀)

안녕하세요. BlockDMask 입니다. 유클리드 알고리즘은 사실 알고리즘 카테고리를 새로 만들어서 작성해야하는데, 조만간에 이사하도록 하겠습니다. 1) "유클리드 알고리즘"이란.유클리드 알고리즘은 주어진 두 수 사이에 존재하는 최대공약수(GCD)를 구하는 알고리즘 입니다. GCD - greatest common divisor 2) "유클리드 알고리즘" 원리.임의의 두 자연수 a, b가 주어졌을때. 둘중 큰 값이 a라고 가정해보겠습니다.a를 b로 나눈 나머지를 n 이라고 하면 (a%b = n)n이 0일때, b가 최대 공약수(GCD)입니다.만약 n이 0이 아니라면, a에 b값을 다시 넣고 n를 b에 대입 한 후 다시 위에 step2부터 반복하면 됩니다.3) "유클리드 알고리즘" 접근방법.두가지 접근 방법이..

[C 자료구조] Array - Left Rotation

0) 제목Hackerrank 의 Arrays 부분의 Left Rotation 문제입니다.왼쪽으로 배열을 옮긴다! 이런 문제입니다.C언어를 이용하여 풀었습니다. 1) 문제설명배열이 주어지면 그 배열을 왼쪽으로 rotation 시키는 문제입니다. 예를들어 배열 {1, 2, 3, 4, 5, 6} 이 주어지고, rotation이 3이 나오게 되면출력을 {4, 5, 6, 1, 2, 3} 순으로 출력하면 됩니다.처음에 배열의 길이와, rotation의 숫자를 입력 받고배열의 길이만큼 데이터를 입력 받는 형태입니다.2) 풀이과정자료구조 항목의 배열 문제 이지만, 재미있는 알고리즘 문제라고 생각합니다.처음에는 무식하게 "배열을 rotation 숫자만큼 이동하면 되겠다"라고 생각했는데, 잘 읽어보니까 "출력"만 rota..

[C언어 게임] 테트리스 게임 (Tetris Game with C)

안녕하세요. BlockDMask입니다.설명하기 전에, 메이킹 영상먼저 보겠습니다.초기 배경을 만들고 하나씩 수정을 하는 모습을 동영상으로 만들었습니다.영상의 마지막에(1:23)에는 V1.0 플레이 영상이 첨부 되어있습니다. 1. Intro이름 : myTetris game (테트리스 게임) 요약 : C언어로 만든 테트리스 게임입니다. 콘솔 환경에서만 돌아갑니다. (.exe파일) 기간 : 2017년 05월 26일, 27일, 29일, 30일 (4일) (평일에는 퇴근하고 개발을 하였고, 주말에는 여친 안만날때 틈틈히 했습니다.) 인원 : 본인 한명 실행파일(exe) : 글 하단에 다운로드 부분을 클릭해주세요! 영상 : 유튜브 X + boundaryArr[1] +1] != EMPTY) ||(boundaryArr[..

[윈도우 단축키] 윈도우, 실행창 단축키 정리

안녕하세요. BlockDMask 입니다. 오늘은 window 단축키에 대해서 아는만큼 써보려고 합니다.앞으로 더 알게된다면 추가 작성하겠습니다.또한, 추가 되었으면 하는 내용이 있으면 댓글 달아주시면 추가하겠습니다. 작업관리자Ctrl + Shift + EscCtrl + Alt + delete -> T모든 창 내리기/올리기win + D윈도우 탐색기 실행 (파일 열기)win + E화면 잠금win + L실행창 명령어익숙해지면 정말 편합니다. 바탕화면에서 Win + R 을 누르면 아래 실행창이 생기게 됩니다. 목록이름 명령어 계산기 calc 메모장 notepad 제어판 control 프로그램 추가/제거 appwiz.cpl 원격 데스크톱 연결 mstsc 명령 프롬프르 (cmd.exe) cmd 레지스트리 편집기 r..

[한글 단축키] 한글 단축키 정리 (꼭 필요한 것만 정리)

안녕하세요, 오늘은 제가 직접 문서를 작성할때 사용하는 한글 단축키에 대해서 적어 보도록 하겠습니다. 꼭 필요하다고 생각하는 것만 추려서 작성했습니다. 목차가 있으니 해당 항목으로 이동하셔서 보는것도 좋은 방법인 듯 싶습니다. 1. 글자 크기2. 글꼴 및 글자 속성 및 글자 속성 복사3. 편집 용지 설정 (용지 크기, 가로형, 세로형)4. 표 만들기5. 표 크기 변경하기6. 표 가로세로 간격 맞추기7. 표의 선, 배경 설정8. 표 나누기, 채우기, 병합하기9. 표 칸, 줄 추가 및 셀 삭제. 1. 글자 크기 1) 글자 크기 키우기(1pt 씩 증가) : Alt + Shift + E 2) 글자 크기 줄이기(1pt 씩 감소) : Alt + Shift + R 사용방법그림1) - [왼쪽] : 특정 글자만 키우고 ..

[C++] template(템플릿)에 관하여 2 (클래스 템플릿, 템플릿 특수화)

안녕하세요. BlockDMask 입니다.오늘은 C++ template(템플릿)에 관하여 두번째 시간입니다. 클래스 템플레이트와 템플레이트 특수화에 대해서 배울것 입니다.혹시 template이 무엇인지 다시한번 복습이 필요하신분들은. [바로가기] 1) 템플릿 특수화 (template specialization) 템플릿(template)을 사용할때, 특수한 자료형에 대해서는 다른 처리를 하고 싶을때 사용합니다. 사용 방법은 아래처럼 template 가 정의되어있을때, 같은 함수에 대해서, 재정의?하고싶은 데이터 타입을 이용해서 아래 주황 글씨처럼 재정의 하면됩니다. T를 없애고 넣고싶은 데이터 타입을 넣습니다. 123456789101112template T sum(T a, T b){ return a + b;..