반응형

전체보기 408

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

[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..

반응형