본문 바로가기
반응형

C++162

[LeetCode] 169. Majority Element (C++) 문제 링크 코딩하기 전 생각하기 /* 벡터를 정렬했을 때 중앙에 오는 값이 Majority Element이다. */ 코드 class Solution { public: int majorityElement(vector& nums) { sort(nums.begin(), nums.end()); return nums[nums.size() / 2]; } }; 느낀점 이중 반복문을 이용한 풀이가 시간초과가 나서 Solution의 도움을 받았다. sorting을 사용하는 것은 정말 좋은 아이디어인 것 같다. (주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다. 댓글 환영합니다! 2021. 7. 29.
[LeetCode] 412. Fizz Buzz (C++) 문제 링크 코딩하기 전 생각하기 /* 1부터 n까지 반복한다. 15의 배수면 피즈버즈, 3의 배수면 피즈 5의 배수면 버즈 다 아니면 숫자를 벡터에 추가한다. 벡터를 반환한다. */ 코드 class Solution { public: vector fizzBuzz(int n) { vector v; for ( int i = 1; i 2021. 7. 29.
[LeetCode] 125. Valid Palindrome (C++) 문제 링크 코딩하기 전 생각하기 /* 새 문자열을 생성한다. tolower 함수를 이용하여 대문자는 소문자로 바꾸고 소문자나 숫자일 때만 새 문자열에 추가한다. 새 문자열과 새 문자열을 뒤집은 문자열을 비교하여 같으면 true, 다르면 false를 반환한다. */ 코드 class Solution { public: bool isPalindrome(string s) { string t = ""; for ( auto c : s ) { c = tolower(c); if ( c >= 'a' && c = '0' && c 2021. 7. 29.
[LeetCode] 35. Search Insert Position (C++) 문제 링크 코딩하기 전 생각하기 /* 벡터를 순회하면서 값이 target보다 크거나 같으면 인덱스 값을 반환한다. 벡터 순회가 끝나면 벡터의 크기를 반환한다. */ 코드 class Solution { public: int searchInsert(vector& nums, int target) { int i; for ( i = 0; i = target ) return i; } return i; } }; 느낀점 O(log n)으로 안풀어줘서 미안해.. (주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다. 댓글 환영합니다! 2021. 7. 29.
[LeetCode] 704. Binary Search (C++) 문제 링크 코딩하기 전 생각하기 /* 벡터를 순회하면서 값이 target과 같으면 인덱스 값을 반환한다. 벡터 순회가 끝나면 -1을 반환한다. */ 코드 class Solution { public: int search(vector& nums, int target) { for ( int i = 0; i < nums.size(); i++ ) { if ( nums[i] == target ) return i; } return -1; } }; 느낀점 제목처럼 Binary Search를 해야하는 문제였다.. (주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다. 댓글 환영합니다! 2021. 7. 29.
[LeetCode] 258. Add Digits (C++) 문제 링크 코딩하기 전 생각하기 /* num을 문자열로 변환해서 각 자리수를 더할 수 있게 하자. 각 자리수를 더한 값이 한 자리가 될 때 까지 반복한다. 한 자리 숫자를 반환한다. */ 코드 class Solution { public: int addDigits(int num) { string s = to_string(num); while ( s.length() > 1 ) { int sum = 0; for ( auto c : s ) sum += c - '0'; s = to_string(sum); } return stoi(s); } }; 느낀점 to_string(num) stoi(str) (주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다. 댓글 환영합니다! 2021. 7. 29.
[LeetCode] 342. Power of Four (C++) 문제 링크 코딩하기 전 생각하기 /* 0이거나 음수이면 false를 반환한다. n이 1이 될 때 까지 반복한다. n이 4로 나누어 떨어지면 4로 나눈다. 아니라면 false를 반환한다. true를 반환한다. */ 코드 class Solution { public: bool isPowerOfFour(int n) { if ( n 1 ) { if ( n % 4 == 0 ) n /= 4; else return false; } return true; } }; 느낀점 나는 지금 일주일에 20문제 이상을 해결해야하는 온라인 캠프를 하고 있다. 수료를 해야하기 때문에 쉬운 문제를 열심히 찾고 있다. (주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의.. 2021. 7. 29.
[LeetCode] 860. Lemonade Change (C++) 문제 링크 코딩하기 전 생각하기 /* five와 ten 거스름돈 변수를 생성한다. bills를 순회한다. 5달러를 받으면 five++를 한다. 10달러를 받았을 때, five가 없으면 false를 반환한다. 아니라면 ten++와 five--를 한다. 20달러를 받았을 때, ten이 있고 five도 있으면 ten--와 five--를 한다. 위의 경우가 아닌데 five가 3 이상 있으면 five에 3을 뺀다. 위의 경우도 아니면 false를 반환한다. false 반환없이 순회가 끝나면 true를 반환한다. */ 코드 class Solution { public: bool lemonadeChange(vector& bills) { int five = 0, ten = 0; for ( int i : bills ) {.. 2021. 7. 28.
[LeetCode] 14. Longest Common Prefix (C++) 문제 링크 코딩하기 전 생각하기 /* 접미사 문자열을 생성한다. 맨 앞 문자열을 나머지 문자열과 비교하면서 접미사를 구한다. 맨 앞 문자열의 0부터 i까지 부분을 tmp이라고 하자. substr 함수를 사용하자. tmp가 나머지 문자열의 앞 부분과 다르면 이전 단계까지의 접미사 문자열을 반환한다. 아니라면, 접미사 문자열에 tmp를 저장한다. tmp를 반환한다. */ 코드 class Solution { public: string longestCommonPrefix(vector& strs) { string pre = ""; for ( int i = 0; i < strs[0].length(); i++ ) { string tmp = strs[0].substr(0, i+1); for ( int j = 1; j .. 2021. 7. 27.
[백준/BOJ] 2783번 - 삼각 김밥 (C++) 문제 링크 코딩하기 전 생각하기 /* min 변수를 생성한다. 처음에 x, y를 입력받고 x/y 값을 min에 저장한다. x/y는 1g당 삼각김밥의 가격이다. n을 입력받고 n만큼 반복한다. x, y를 입력받고 x/y 값이 min보다 작으면, x/y 값을 min에 저장한다. min에 1000을 곱하고 소수점 두 자릿수 까지 출력한다. */ 코드 #include #include using namespace std; int main() { double x, y, min; int n; cin >> x >> y >> n; min = x/y; for ( int i = 0; i > x >> y; if ( min > x/y ) min = x/y; } printf("%.2f", min .. 2021. 7. 27.
반응형