전체 글

문제 설명 현대모비스는 우수한 SW 인재 채용을 위해 상시로 채용 설명회를 진행하고 있습니다. 채용 설명회에서는 채용과 관련된 상담을 원하는 참가자에게 멘토와 1:1로 상담할 수 있는 기회를 제공합니다. 채용 설명회에는 멘토 n명이 있으며, 1~k번으로 분류되는 상담 유형이 있습니다. 각 멘토는 k개의 상담 유형 중 하나만 담당할 수 있습니다. 멘토는 자신이 담당하는 유형의 상담만 가능하며, 다른 유형의 상담은 불가능합니다. 멘토는 동시에 참가자 한 명과만 상담 가능하며, 상담 시간은 정확히 참가자가 요청한 시간만큼 걸립니다. 참가자가 상담 요청을 하면 아래와 같은 규칙대로 상담을 진행합니다. 상담을 원하는 참가자가 상담 요청을 했을 때, 참가자의 상담 유형을 담당하는 멘토 중 상담 중이 아닌 멘토와 상..
순열, 조합, 부분집합 순열, 조합, 부분집합을 만드는 알고리즘 정리 순열 순열이란? 서로 다른 n 개 중 r 개를 골라 순서를 고려해 나열한 경우의 수. 1, 2, 3, 4 중 3개를 뽑아 순열을 만든다면 가능한 경우는 다음과 같다. {1, 2, 3}, {1, 2, 4}, {1, 3, 2}, {1, 3, 4}, {1, 4, 2}, {1, 4, 3}, {2, 1, 3}, ... , {4, 2, 3}, {4, 3, 1}, {4, 3, 2} 순서를 고려해야 하므로 반복문을 이용하여 가장 앞의 원소부터 확인해야 한다. 또한, 중복은 허용하지 않기 때문에 포함 여부를 확인해야 한다. void Permutation(vector& nums, vector& checked, vector& perm) { if(perm...
문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. https://school.programmers.co.kr/learn/courses/30/lessons/12977?language=cpp' 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제한 사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. n..
부스트는 동료 심사를 거쳐 등록되고 무료로 배포되는 오픈 소스 C++라이브러리를 개발하는 모임이다. 또한 C++ 표준화에 있어서 영향력 있는 역할을 맡고 있다. 부스트에서 배포되는 라이브러리들 중엔 TR1 구성요소에 들어간 것도 있지만, 그 외에 다른 라이브러리들도 많다. 부스트 부스트는 품질이 우수하고 이식성이 좋은 라이브러리이다. http://boost.org Boost C++ Libraries Welcome to Boost.org! Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work well with the C++ Standard Library. Boost libraries a..
최초에 상정된 표준 C++ 라이브러리의 주요 구성요소는 STL, iostream, 로케일 등이다. 여기에는 C89의 표준 라이브러리도 포함되어 있다. TR1이 도입되면서 추가된 것은 스마트 포인터, 일반화 함수 포인터(tr1::function), 해시 기반 컨테이너, 정규 표현식 그 외의 10개 구성요소이다. TR1 자체는 단순히 명세서이다. TR1의 기능을 사용하기 위해서는 명세를 구현한 코드를 구해야 한다. TR1 구현을 구할 수 있는 자료처 중 한 군데가 바로 부스트이다. TR1을 포함한 표준 라이브러리 C++ 표준에는 계속해서 새로운 기능이 추가되어왔다. TR1은 C++ 라이브러리 작업 그룹이 작성한 1차 기술 보고서이다. TR1이 포함된 것을 C++ 표준 1.1이라고 부른다. TR1을 비롯한 C..
컴파일러 경고를 쉽게 지나치지 마라. 컴파일러에서 지원하는 최고 경고 수준에도 경고 메시지를 내지 않고 컴파일되는 코드를 만드는 쪽으로 노력해라. 컴파일러 경고에 너무 의존하지 마라. 컴파일러마다 경고를 내는 부분이 다르다. 지금 코드를 다른 컴파일러로 이식하면 경고 메시지가 달라질 수 있다. 컴파일러 경고 컴파일러 경고를 무시하면 안 된다. 예를 들어 보자. class B { public: virtual void f() const; }; class D: public B { public: virtual void f(); }; 가상 함수인 B::f를 D::f에서 재정의하겠다는 의도인데, 실수가 있다. B 클래스의 f는 상수 멤버 함수이지만, D 클래스의 f에는 const가 붙어 있지 않다. 이 코드를 컴파..
operator new 함수의 위치지정 버전을 만들 때는, 이 함수와 짝을 이루는 위치지정 버전의 oeprator delete 함수도 꼭 만들어야 한다. 그렇지 않으면, 메모리 누출이 생길 수 있다. new와 delete의 위치지정 버전을 선언할 때는, 의도한 것과 달리 표준 버전이 가려지는 일이 생기지 않도록 주의해야 한다. 위치지정 new & 위치지정 delete 다음과 같은 new표현식을 썼을 때 호출되는 함수는 두 개다. Widget* pw = new Widget; 메모리 할당을 위해 operator new가 호출되고, 그 뒤를 이어 Widget의 기본 생성자가 호출된다. 여기서, 첫 번째 함수 호출은 무사히 지나갔는데 두 번째 함수 호출이 진행되다가 예외가 발생했다고 가정해 보자. 그렇다면 첫 ..
hvv_an
이미난