본문 바로가기

c++9

C++17 std::optional 하 C++17을 공부한지 너무 오래된 듯 하다 ㅠㅠ 오늘 나의 멍청함 기록........ 왜 std::optional의 nullptr과 nullopt 결과가 동일할거라 생각했지🥺 https://stackoverflow.com/questions/47791737/difference-between-nullptr-and-nullopt Difference between nullptr, {} and nulloptWhy can't i use nullptr instead of nullopt? And why {} translates like nullopt?stackoverflow.com 2023. 9. 8.
[C++ 17] Fold Expressions 예전에 C++17 스터디 때 만들었던 발표 자료 중 일부를 포스팅합니다. C++ 17부터 추가된 Fold Expression C++ 11에서 도입된 가변 길이 템플릿은 매우 편리하지만 한 가지 단점이 있다. 재귀 가변 템플릿을 구성할때, 반드시 재귀 호출 종료를 위한 함수를 따로 만들어야 한다는 것이다. C++ 17에서 Fold Expression이 등장하게 된 계기중 하나. 가변 인수 템플릿과 파라미터 팩?? 가변 인수 템플릿은 템플릿 매개변수의 개수가 고정되어 있지 않아, 템플릿 매개변수의 개수를 지정하지 않게 정의할 수 있다. 이때 typename 뒤에 " ... " 으로 오는 것을 템플릿 파라미터 팩이라고 한다. 재귀 호출 int sum_all { return 0; } 과 같이 재귀 함수 호출을 .. 2022. 8. 5.
C++ 특수 멤버 함수와 The rule of three five zero (3/5/0) C++ 특수 멤버 함수 정의 규칙 자료 : https://en.cppreference.com/w/cpp/language/rule_of_three The rule of three/five/zero - cppreference.com [edit] Rule of three If a class requires a user-defined destructor, a user-defined copy constructor, or a user-defined copy assignment operator, it almost certainly requires all three. Because C++ copies and copy-assigns objects of user-defined types in va en.cppreferen.. 2022. 7. 25.
C++ 프로그래머스 코딩테스트 - 야근 지수 (12927) 야근 지수 Level 3 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 퇴근까지 남은 시간 N이 주어지고, 작업량 리스트가 주어진다. 야근 지수의 최솟값을 리턴해야 하는데, 야근 지수를 가장 작은 수로 만들려면, 작업량 리스트의 숫자들의 차이가 적게 나야한다. 예를들어 [10, 9, 8, 1] 의 작업량 리스트와 시간 5 값이 주어질 때, [8, 8, 6, 1] 보다 [7, 7, 8, 1] 가 야근 지수가 더 낮다. (리스트의 숫자들의 격차가.. 2022. 7. 22.
C++ 프로그래머스 코딩테스트 - 기지국 설치 (12979) 기지국 설치 Level 3 https://school.programmers.co.kr/learn/courses/30/lessons/12979 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 기지국을 최소로 설치하면서 모든 아파트에 전파를 전달한다. 위의 예시에서는 최소 3개를 설치하면 모든 아파트에 전달 가능하다. 나의 풀이 int solution(int n, vector stations, int w) { int answer = 0; int lastRightIdx = 0; for (int appart : stations) { int leftIdx = app.. 2022. 7. 21.
C++ 프로그래머스 코딩테스트 - 경주로 건설 (67259) 경주로 건설 Level 3 https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 직선 도로 하나를 만들 때는 100원이 소요되며, 코너를 하나 만들 때는 500원이 추가로 소요. 견적서 작성을 위해 경주로를 건설하는 데 필요한 최소 비용을 계산해야 한다. 나의 풀이 int solution(vector board) { int directx[] = { 0,0,1,-1 }; int directy[] = { 1,-1,0,0 }; int visit_minPr.. 2022. 7. 21.