From dc7c5e3109a98f356f083872e88ac35d9b5f2eda Mon Sep 17 00:00:00 2001 From: rlawjd10 Date: Tue, 22 Jul 2025 11:57:55 +0900 Subject: [PATCH 1/5] two sum solution --- two-sum/rlawjd10.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 two-sum/rlawjd10.c diff --git a/two-sum/rlawjd10.c b/two-sum/rlawjd10.c new file mode 100644 index 000000000..36746b823 --- /dev/null +++ b/two-sum/rlawjd10.c @@ -0,0 +1,13 @@ +int compare(const void* a, const void* b) { + return (*(int*)a - *(int*)b); // 오름차순 +} + +bool containsDuplicate(int* nums, int numsSize) { + qsort(nums, numsSize, sizeof(int), compare); + + for (int i = 1; i < numsSize; i++) { + if (nums[i] == nums[i-1]) + return 1; + } + return 0; +} From 37ec25dff12778e7b93ce61441b9a3c9cfe5a9bf Mon Sep 17 00:00:00 2001 From: rlawjd10 Date: Fri, 25 Jul 2025 17:54:40 +0900 Subject: [PATCH 2/5] house-robber solution --- house-robber/rlawjd10.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 house-robber/rlawjd10.cpp diff --git a/house-robber/rlawjd10.cpp b/house-robber/rlawjd10.cpp new file mode 100644 index 000000000..14686b05b --- /dev/null +++ b/house-robber/rlawjd10.cpp @@ -0,0 +1,19 @@ +class Solution { +public: + int rob(vector& nums) { + if (nums.empty()) return 0; + if (nums.size() == 1) return nums[0]; + + int prev2 = 0; // 두 칸 전 (현재 집 털기) + int prev1 = 0; // 한 칸 전 (현재 집 안털기) + + for (int num : nums) { + int current = max(prev1, prev2 + num); + prev2 = prev1; + prev1 = current; + } + + return prev1; + } +}; + From 475cc7cfa52be1d3649b588838fb9de1d70bb82d Mon Sep 17 00:00:00 2001 From: rlawjd10 Date: Fri, 25 Jul 2025 17:55:24 +0900 Subject: [PATCH 3/5] longest-consecutive-sequence solution --- longest-consecutive-sequence/rlawjd10.cpp | 28 +++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 longest-consecutive-sequence/rlawjd10.cpp diff --git a/longest-consecutive-sequence/rlawjd10.cpp b/longest-consecutive-sequence/rlawjd10.cpp new file mode 100644 index 000000000..04a9bc180 --- /dev/null +++ b/longest-consecutive-sequence/rlawjd10.cpp @@ -0,0 +1,28 @@ +class Solution { +public: + int longestConsecutive(vector& nums) { + unordered_map count; + // nums에 해당하는 index는 1을 표시 + for (int num: nums) { + count[num] = 1; + } + + vector> order(count.begin(), count.end()); + sort(order.begin(), order.end(), [](auto& a, auto& b) {return a.first < b.first;}); + + int length = 1; + int currentLength = 1; + if(order.empty()) return 0; + for (int i = 1; i < order.size(); i++) { + // 연속적인지 확인 + if (order[i].first == order[i-1].first +1) + currentLength++; + else + currentLength = 1; + length = max(length, currentLength); + } + + return length; + } +}; + From 0057ff1107d2208b017c90a32a9440b843d8ea90 Mon Sep 17 00:00:00 2001 From: rlawjd10 Date: Fri, 25 Jul 2025 17:56:35 +0900 Subject: [PATCH 4/5] top-k-frequent-elements solution --- top-k-frequent-elements/rlawjd10.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 top-k-frequent-elements/rlawjd10.cpp diff --git a/top-k-frequent-elements/rlawjd10.cpp b/top-k-frequent-elements/rlawjd10.cpp new file mode 100644 index 000000000..26711a688 --- /dev/null +++ b/top-k-frequent-elements/rlawjd10.cpp @@ -0,0 +1,26 @@ +class Solution { +public: + vector topKFrequent(vector& nums, int k) { + unordered_map count; + + // 1. nums의 각 원소 count + for (int num : nums) { + count[num]++; // count에 num에 해당하는 value에는 1증가 + } + + // 2. 많이 나온 순서대로 정렬 + vector> freqs(count.begin(), count.end()); + sort(freqs.begin(), freqs.end(), [](pair a, pair b) { + return a.second > b.second; + }); + + // 3. 상위 k개 추출 + vector max(k); + for (int i = 0; i < k; i++) { + max[i] = freqs[i].first; + } + + return max; + } +}; + From d84be8f61cb8aa8592343d284628f2d47073406a Mon Sep 17 00:00:00 2001 From: rlawjd10 Date: Fri, 25 Jul 2025 17:57:50 +0900 Subject: [PATCH 5/5] contains-duplicate solution --- contains-duplicate/rlawjd10.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 contains-duplicate/rlawjd10.c diff --git a/contains-duplicate/rlawjd10.c b/contains-duplicate/rlawjd10.c new file mode 100644 index 000000000..f4db22cfb --- /dev/null +++ b/contains-duplicate/rlawjd10.c @@ -0,0 +1,14 @@ +int compare(const void* a, const void* b) { + return (*(int*)a - *(int*)b); // 오름차순 +} + +bool containsDuplicate(int* nums, int numsSize) { + qsort(nums, numsSize, sizeof(int), compare); + + for (int i = 1; i < numsSize; i++) { + if (nums[i] == nums[i-1]) + return 1; + } + return 0; +} +