c++

Study/C++

[Study/C++] More Effective C++ 항목 8 new와 delete의 의미를 정확히 구분하고 이해하자

이 항목은 C++을 쓰다보면 가끔 이런 생각이 들 때가 있습니다. '이 인간들, 이해하기 어렵게 만드려고 생난리를 쳤구먼...?'이라고요. 그 중 하나가 지금 이야기하고자 하는 'new 연산자'와 'operator new'의 차이랍니다. 이게 서로 다른 것인 줄도 모르셨죠? 라는 문장으로 시작한다. 처음에는 "operator가 한국어로 연산자인데 뭘까.. 'new 연산자'와 '연산자 new'의 차이라는 건가.."라는 생각이 들었다. 정말 모르겠지만.. 차근 차근 이해를 해보자! 하고 몇 줄 읽지 않아 답이 나왔다. new 연산자가 호출하는 그 함수의 이름이 바로 operator new입니다. 진짜입니다. 아하! 답답함이 한순간에 풀렸다. 비주얼 스튜디오에서 new 연산자를 사용해보자. 아무거나 하나 작성..

Algorithm/CPP

[C++/LeetCode/Top Interview Questions]String

문제 1. Reverse String class Solution { public: void reverseString(vector& s) { reverse(s.begin(), s.end()); } }; vector에는 reverse(start, end) 함수가 있으니까 사용하면 된다. 문제 2. Reverse Integer class Solution { public: int reverse(int x) { string str_x = to_string(x); string rev_str_x; for (int i=str_x.size()-1; i>-1; i--) rev_str_x += str_x[i]; long long res = stoll(rev_str_x); if (x < 0) res *= -1; return ..

Algorithm/CPP

[C++/LeetCode/Top Interview Questions]Array

생각보다 문제가 빨리 풀려서 카테고리 별로 포스팅을 올리는게 나을 것 같다. 풀리긴 풀리는데 계속 아쉬운 마음이 든다. 파이썬처럼 C++도 C++만의 장점을 살릴 수 있는 방법이 있을 텐데, 파이썬 코드를 C++로 바꾼 것처럼 풀고 있다. 심지어 파이썬이 아니니 파이썬의 장점도 죽는다😂. 근데 풀다보니 C++도 파이썬만큼은 아니지만 꽤 편한 것 같다. 문제 5. Single Number class Solution { public: int singleNumber(vector& nums) { int answer = 0; sort(nums.begin(), nums.end()); for (int i=0; i

Algorithm/CPP

[C++, LeetCode] Contains Duplicate 벡터에 중복 값 포함되었는지 확인하기

문제: https://leetcode.com/problems/contains-duplicate/ Contains Duplicate - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 앞에서 풀었던 문제(정렬된 벡터에서 중복 제거하기)와 유사해서 금방 풀었다. 🔽풀이 1 class Solution { public: bool containsDuplicate(vector& nums) { int before = nums.size(); sort(nums.begin(), n..

Algorithm/CPP

[C++/LeetCode]Rotate Array(벡터 값 회전하기)

저번 글에서 언어는 도구일 뿐이라고 했는데 언어가 도구인 것은 맞다. 하지만 전기톱으로 나무를 베는 것은 쉽지만 커터 칼로 자르면 어려운 것처럼... 파이썬으로 문제를 풀다가 C++로 문제를 푸는게 어려운 건 당연한게 아닐까...? C++이 성능이 더 좋다해도.. vi도 커맨드를 알면 정말 누구보다 편하게 쓸 수 있지만.. 기능을 익히는데 시간이 오래 걸리니까 말이다..(=실력 부족) 문제: https://leetcode.com/problems/rotate-array/ Rotate Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get p..

Algorithm/CPP

[C++/LeetCode]주식을 사고 팔기 가장 좋은 시기 II

뭔가 이 문제를 풀어보니까 알고리즘을 푸는데 언어는 문제가 아닌거 같기도 하고... 일단 언어는 문제를 풀기 위한 도구일뿐이고 결국에 핵심 로직은 똑같으니까..🙄? class Solution { public: int maxProfit(vector& prices) { int profit = 0; for (int i = 1; i < prices.size(); i++){ profit += max(prices[i]-prices[i-1], 0); } return profit; } }; 한 번의 거래로 낼 수 있는 최대 이익을 찾는 문제인데 예를 들어서 [7, 1, 5, 3, 6, 4]인 경우, 1일 때 사서 6일 때 팔면 최대 이익을 산출 할 수 있다. 브루트 포스로 하면 c++은 런타임 에러가 나지 않을 수도 ..

Algorithm/CPP

[C++/LeetCode] 정렬된 배열(벡터)에서 중복 제거하기

C++에서 손을 떼고 Python만 한지 4년차... C++로 코딩테스트를 보게 됐다. 기본 문법만이라도 익숙해져보려고 하지만, 입출력에서 부터 오류가 나고 계속 틀린다😥.. 그래도 할 수 있는 한 계속해서 노력해보겠지만... 떨어지면 명백하게 내 실력 부족인거니까 미련을 갖진 않으려 한다.. 미련 갖고 후회 하기보단 계속 공부를 해야지.. 코딩 테스트에서 자주 나오는 문제를 풀되, 기본 문법에 익숙해져야 하니까 뭘 풀까 고민하다가 LeetCode Top Interview Questions 를 풀기로 했다. 첫번째 문제는 정렬된 배열에서 중복을 제거하는 문제였다. 파이썬으로 풀 때는 정말 보자마자 바로 풀었는데, C++로 풀어보니 레퍼런스도 참고하고 문법을 찾아보다가 한시간이 걸렸다.. class Sol..

박한결
'c++' 태그의 글 목록