본문 바로가기
반응형

전체 글172

[LeetCode] 1209. Remove All Adjacent Duplicates in String II (C++) 문제 링크 코딩하기 전 생각하기 /* char와 int pair로 이루어진 덱을 생성한다. 문자열을 순회한다. 덱이 비었거나 문자가 덱의 back에 있는 문자와 다르면 문자와 1을 pair로 묶어 덱에 추가한다. 문자가 덱의 back에 있는 문자와 일치하면 back의 해당 숫자에 1을 더한다. back의 숫자가 k가 되면 back을 pop한다. answer 문자열을 생성하고 반복문을 활용하여 문자열을 채운다. answer 문자열을 반환한다. */ 코드 class Solution { public: string removeDuplicates(string s, int k) { /* 1st try int cnt = 1; for ( int i = 0; i 0.. 2021. 7. 30.
[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] 1154. Day of the Year (파이썬) 문제 링크 코딩하기 전 생각하기 ''' split를 사용하여 년, 월, 일 변수를 저장하자. 월의 일 수가 담긴 배열을 생성한다. 윤년이면 2월은 29일까지 있다. month-1 까지의 월의 일 수를 모두 더하고 day를 더해서 몇번째 날인지 구한다. ''' 코드 class Solution: def dayOfYear(self, date: str) -> int: year, month, day = date.split("-") year = int(year) month = int(month) day = int(day) month_days = [31,28,31,30,31,30,31,31,30,31,30,31] if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:.. 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.
반응형