본문 바로가기

전체 글48

프로그래머스 - 위장(해시) 1. 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clo.. 2023. 2. 14.
STL 알고리즘 / find, find_if, any_of, all_of 1. find template InputIt find(InputIt first, InputIt last, const T& value) 위처럼 생긴 함수다. 해당 함수는 단순무식하게 first 이터레이터부터 last 이터레이터까지를 순회하며 value에 해당하는 값을 발견하면 해당 value의 iterator를 리턴한다. 만약 발견하지 못했다면 last에 해당하는 iterator를 반환한다. std::vector vec; vec.push_back(1); vec.push_back(2); vec.push_back(3); vec.push_back(4); find(vec.begin(), vec.end(), 3);// 3을 가리키는 iterator return find(vec.begin(), vec.end(), 3.. 2023. 2. 14.
STL 알고리즘 / transform 함수 transform 함수는 이터레이터를 활용해서 접근할 수 있는 원소들의 값을 변경시켜 줄 수 있다. 1. 사용 방법 transform (Iter begin, Iter end, Iter begin_result, Pred pred); // 1번 인자는 변환을 시작할 컨테이너의 시작 iterator, // 2번 인자는 변환을 끝낼 컨테이너의 끝 iterator, // 3번 인자는 모든 값 변환을 마친 컨테이너의 결과값을 저장할 시작 iterator, // 4번 인자는 컨테이너 값을 어떻게 변환할 것인가하는 함수 객체 혹은 함수 포인터 당연한 이야기이지만, 변경된 값들을 저장할 이터레이터는 원래 값이 저장된 이터레이터의 크기만큼이 할당되어 있어야 한다. 2. 사용 예시 std::vector vec; std::v.. 2023. 2. 14.
C++ 11 / 람다 함수 람다 함수는 이름이 없는 익명 함수를 의미한다. 1. 기본 형태 기본적으로는 다음과 같은 꼴을 갖는다. [capture_list] (parameter) -> return_type { function body; } // 리턴 타입 포함 [capture_list] (parameter) { function body; } // 리턴 타입 생략 예를 들어 해당 값이 홀수인지 아닌지 판별하는 람다 함수는 다음과 같이 정의된다. [](int num) -> bool { return num % 2 == 1; } 해당 함수는 이름이 없는 함수 객체이기 때문에 그 즉시 호출해서 사용하거나, 다른 함수의 파라미터로 전달하거나, 함수 객체에 해당하는 변수를 생성해서 할당한 뒤 사용할 수 있다. auto is_odd = [](i.. 2023. 2. 14.