본문 바로가기

분류 전체보기85

CPP Exception - 3 std::exception (예외 클래스) 여태까지 조건문을 이용하여 예외 상황임을 판단하여 직접 throw로 예외를 던졌었습니다. std::exception 클래스를 통해 시스템 상 내부에서 알아서 발생한 예외를 throw 해줍니다. std::exception은 CPP의 표준 클래스로 여러 종류의 예외를 나타내는 자식 클래스들을 가지고 있습니다. 다음과 같이 벡터 클래스의 길이보다 1 더 큰 크기를 재할당시켜 에러가 나도록 유도해봅시다. #include #include #include using namespace std; int main() { try { vector v; v.resize(v.max_size()+1); } catch(std::exception & e) { cout 2021. 11. 28.
CPP Exception - 2 다른 함수를 호출했을 때 예외처리 다음과 같이 try문 안에서 함수를 호출한 후 해당 함수에서 try, catch를 사용하지 않고 throw를 보내면 어떻게 될까요? catch문이 존재하지 않아 에러가 발생하게 될까요? 다음과 같이 함수를 작성해보고 실행해봅시다. #include using namespace std; void func() { throw 1; } int main() { try { func(); } catch(...) { cout 2021. 11. 28.
CPP Exception - 1 프로그램을 작성하다보면 문법적인 오류가 아니라 논리적인 오류로 프로그램이 의도치 않는 동작을 하는 경우가 있습니다. 예를 들어, 다음과 같이 1부터 9의 숫자를 입력받고 해당 숫자를 출력하는 프로그램을 만들어봅시다. #include using namespace std; int main() { int n; cin >> n; cout n; if (n 9) { cout 2021. 11. 27.
깃허브 블로그에서 티스토리로 옮기게 된 이유 블로그를 시작했던 이유 개발 공부를 하면서 시간이 지나서 이전에 공부했던 내용이 가물가물 해질때 정리한 글을 보며 다시 기억할 수 있도록 하는 이유와 공부한 내용을 머릿속으로 다시 정리하기 위해서 1주일 전부터 깃허브 블로그를 만들고 시작하게 되었습니다. 깃허브 블로그를 선택했던 이유 처음에 깃허브 블로그를 선택한 이유는 깃허브와 연동되어 커밋기록을 남길 수 있다는 점과 강력한 커스터마이징 기능에 매력을 느꼈고 나중에 블로그를 보는 사람이 많아질 경우 구글 애드센스를 달 수도 있었기 때문에 수익성 측면에서도 좋다고 느꼈습니다. 얼마 사용해 보지도 않고 깃허브 블로그를 그만둔 이유 깃허브 블로그같은 경우 마크다운 파일을 작성하여 정적 사이트 생성기를 통해 html로 변환해 사용했었는데 제가 잘못 작성했던 .. 2021. 11. 27.
9202 Boggle 문제 링크 https://www.acmicpc.net/problem/9202 9202번: Boggle 각각의 Boggle에 대해, 얻을 수 있는 최대 점수, 가장 긴 단어, 찾은 단어의 개수를 출력한다. 한 Boggle에서 같은 단어를 여러 번 찾은 경우에는 한 번만 찾은 것으로 센다. 가장 긴 단어가 여러 개 www.acmicpc.net 문제 접근 백트래킹 + 이분탐색을 이용하여 해결했습니다. 문제를 풀기 전 Boggle이라는 게임을 어떻게 하는 건지 알아야 하기 때문에 먼저 설명해보자면 Boggle은 4 x 4 크기의 알파벳이 적혀있는 게임판에서 최대한 많은 단어를 찾는 게임입니다. 단어를 만들때는 인접한 글자(가로, 세로, 대각선 방향)를 연결해서 만들 수 있으며, 이전에 사용한 위치는 다시 사용할.. 2021. 11. 27.