[소프티어] C++ 연습문제 함께하는 효도
·
개발/자료구조, 알고리즘
함께하는 효도 문제를 C++로 풀어보았습니다.   C++ 연습문제 함께하는 효도   문제 https://softeer.ai/practice/7727/history? questionType=ALGORITHM Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제는 맵을 탐색하는 기본 콘셉트의 문제였습니다. 문제는 최대 3명의 친구가 겹치지 않고 탐색해서 최댓값을 구하는 것이었습니다. bfs나 dfs로 풀면 될 것 같았는데 bfs로는 가능할지는 모르겠지만 더 복잡할 것 같아서 dfs를 활용해서 풀 계획을 세웠습니다.주의해야 할 점은 2명 이상의 친구가 있을 때, 각 친구가 최댓값이 되는 경우, 겹칠 수 있습니다. 하지만 문제 제약 조건이 겹치지 않는 것이다보니 1번 친구가 최댓값을 찾은 ..
[C++] class 생성자에서 explicit 키워드의 의미
·
개발/C, C++
오늘은 class 생성자에 대해서 공부하다가 알게 된 explicit 키워드의 의미에 대해서 알아보겠습니다. class 생성자에서 explicit 키워드의 의미 explicit 키워드 C++에서 `explicit` 키워드는 주로 클래스의 생성자에 사용되며, 해당 생성자가 암시적 형 변환을 허용하지 않도록 지정하는 데 사용됩니다. `explicit` 키워드를 사용하면 해당 생성자가 명시적으로 호출되어야 하며, 암시적 형 변환이 자동으로 수행되지 않습니다. 1. 형 변환 오류를 방지: 암시적 형 변환이 허용되면 예상치 못한 형 변환이 발생할 수 있으며, 이는 버그의 원인이 될 수 있습니다. `explicit` 키워드를 사용하면 이러한 형 변환이 방지됩니다. 2. 의도적인 호출 강조: `explicit` 키워..
[C++] STL 컨테이너 Vector 의 용도와 특징, 사용 예제
·
개발/C, C++
C언어에서 C++언어로 오면서 특징 중에 하나가 컨테이너입니다. STL에서 제공하는 여러 가지의 컨테이너에 대해서 알아볼 텐데 오늘은 가장 중요하고 많이 사용되는 Vector에 대해서 알아보도록 하겠습니다. STL 컨테이너 Vector 의 용도와 특징, 사용 예제 Vector란 Vector는 순차적인 데이터를 저장하고 관리하는 데 사용됩니다. 예를 들어, 배열처럼 연속적인 메모리 공간에 데이터를 저장하며, 데이터를 추가, 삭제, 수정하거나 검색하는 작업을 효율적으로 수행할 수 있습니다. 즉 전통적인 C스타일의 배열과 매칭되는 컨테이너입니다. Vector의 특징 동적 크기 조절 Vector는 크기를 동적으로 조절할 수 있기 때문에 초기에 얼마나 많은 요소가 필요한지 미리 알 필요가 없습니다. 이로써 메모리..
[C++] 참조자 (reference) 의 정의, 사용법 및 주의 사항
·
개발/C, C++
C++에서 활용되는 참조자 (reference)에 대해서 알아보도록 하겠다. [C++] 참조자 (reference)의 정의 및 사용법 참조자 (reference)의 정의 C언어에서 변수를 가리키는 것으로 포인터를 사용한다. 예를 들어 아래와 같이 포인터 변수 p를 선언하고 변수 a를 가리키게 하고 가리키는 값인 *p를 출력하면 3이 출력된다. int main(void) { int *p; int a = 3; p = &a; std::cout