[C++] const_cast 연산자
자료형을 변환할 때, C 언어는 암시적 형변환과 명시적 형변환 2가지가 존재합니다. 간략하게 설명하면 암시적 형변환은 컴파일러가 대신 수행하는 형변환이고 명시적 형변환은 반대로 프로그래머가 직접 형변환을 수행하는 것입니다. int i_num = 3.14; // 암시적 double d_num_01 = double(i_...
자료형을 변환할 때, C 언어는 암시적 형변환과 명시적 형변환 2가지가 존재합니다. 간략하게 설명하면 암시적 형변환은 컴파일러가 대신 수행하는 형변환이고 명시적 형변환은 반대로 프로그래머가 직접 형변환을 수행하는 것입니다. int i_num = 3.14; // 암시적 double d_num_01 = double(i_...
코딩테스트 연습 - 여행 경로 문제 바로가기 문제 해결 방법 문제 조건에서 주어진 티켓을 모두 사용할 수 있다고 보장하였으므로 완전 탐색 중 깊이 우선 탐색(DFS)를 사용해 문제를 해결하고자 하였습니다. 탐색을 진행하기 전, 티켓을 중복해서 사용할 수 없으므로 이용한 공항을 기록하고자 하였습니다. 문자열을 key 값으로 한 해시 ...
이진 트리의 약점 이전 포스트에서 이진 트리에 대해 설명했었습니다. 그리고 이진 트리의 약점으로 모든 노드가 1개의 자식만 갖게되어 일렬로 만들어진 트리가 있었습니다. 이 트리의 이름은 편향 이진 탐색 트리라고 부릅니다. [편향 이진 탐색 트리] 이러한 트리를 개선하고자 만들어진 자료 구조가 균형 이진 탐색 트리 입니다. 이진 트리가 균...
자료형을 변환할 때, C 언어는 암시적 형변환과 명시적 형변환 2가지가 존재합니다. 간략하게 설명하면 암시적 형변환은 컴파일러가 대신 수행하는 형변환이고 명시적 형변환은 반대로 프로그래머가 직접 형변환을 수행하는 것입니다. int i_num = 3.14; // 암시적 double d_num_01 = double(i_...
이 포스트는 백준 사이트의 치킨 배달 문제 풀이입니다. 문제 첫 번째 시도(실패) 여러 개의 치킨 가게 중 M 개만 선택하였을 때, 도시의 치킨 거리가 최소인 경우를 구해야 합니다. 여기서 M 개의 가게 선택을 위해 조합을 사용하고 조합으로 선택된 가게들에서 집들까지의 최소 거리를 반복해서 갱신해 정답을 구하고자 하였습니다. #inc...
네트워크 통신을 공부하다 보면 자주 나오는 단어 중 하나가 OSI 7 계층 이라는 단어입니다. 이번 포스트에서는 OSI 7 계층이 무엇이고 어떤 역할을 하며 더 나아가 TCP/IP 4계층 모델은 무엇인지 정리해보겠습니다. OSI 란? OSI 7 계층 모델은 국제 표준화 기구(ISO)에서 수립한 통신 모델로 네트워크 통신이 일어나는 과정을 응용, ...
코딩테스트 연습 - 정수 삼각형 문제 바로가기 문제 설명 삼각형의 위쪽 꼭지점에서 아래쪽으로 이동하면서 각 숫자를 합해 가장 큰 숫자를 만드는 문제입니다. 이 문제는 그림을 그렸을 때, 이진 그래프처럼 보이는 문제이지만 그래프를 만들 필요도 없이 메모이제이션 기법으로 간단하게 풀 수 있습니다. 시간 복잡도 실패 처음 문제를 접근할 때...
이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 를 참고해 작성한 포스트입니다. 이전 포스트 에서 다익스트라 최단 경로 알고리즘에 대해서 설명했습니다. 다익스트라 알고리즘은 한 지점에서 다른 지점까지 의 최단 경로를 빠르게 구할 수 있는 알고리즘 이였습니다. 만약 그래프에 존재하는 N 개의 점이 서로의 최단 경로를 모두 알고 싶다면...
이진 트리를 이용한 탐색 이전 포스트에서 이진 트리에 대해 알아보았습니다. 이번 포스트에서는 이진 트리를 활용한 이진 탐색 트리에 대해 알아보겠습니다. 이진 탐색 트리는 다음과 같은 특징이 있습니다. 키 중복 없음 특정 노드의 왼쪽 서브 트리는 특정 노드 보다 작은 키 값만 존재 특정 노드의 오른쪽 서브 트리는 특정 노드 보다 큰 키...
프로그램의 소스 코드는 한 번에 완벽하게 작성할 수 없습니다. 팀 프로젝트에서는 한 팀원이 작성한 코드를 다른 팀원이 읽을 수 있고 개인 프로젝트에서도 기능을 추가하거나 수정하다 보면 이전 코드를 읽을 때가 있습니다. 여기서 이전 코드를 이해하는데 시간이 소모될 수 있고 최악의 경우, 매번 같은 코드 이해하고자 처음부터 다시 읽어야 될 수 있습니다. ...