Skip to content

Commit 61595a0

Browse files
authored
Merge pull request #1718 from rlawjd10/main
[rlawjd10] WEEK 01 solutions
2 parents bf7128c + d84be8f commit 61595a0

File tree

5 files changed

+100
-0
lines changed

5 files changed

+100
-0
lines changed

โ€Žcontains-duplicate/rlawjd10.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
int compare(const void* a, const void* b) {
2+
return (*(int*)a - *(int*)b); // ์˜ค๋ฆ„์ฐจ์ˆœ
3+
}
4+
5+
bool containsDuplicate(int* nums, int numsSize) {
6+
qsort(nums, numsSize, sizeof(int), compare);
7+
8+
for (int i = 1; i < numsSize; i++) {
9+
if (nums[i] == nums[i-1])
10+
return 1;
11+
}
12+
return 0;
13+
}
14+

โ€Žhouse-robber/rlawjd10.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution {
2+
public:
3+
int rob(vector<int>& nums) {
4+
if (nums.empty()) return 0;
5+
if (nums.size() == 1) return nums[0];
6+
7+
int prev2 = 0; // ๋‘ ์นธ ์ „ (ํ˜„์žฌ ์ง‘ ํ„ธ๊ธฐ)
8+
int prev1 = 0; // ํ•œ ์นธ ์ „ (ํ˜„์žฌ ์ง‘ ์•ˆํ„ธ๊ธฐ)
9+
10+
for (int num : nums) {
11+
int current = max(prev1, prev2 + num);
12+
prev2 = prev1;
13+
prev1 = current;
14+
}
15+
16+
return prev1;
17+
}
18+
};
19+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
class Solution {
2+
public:
3+
int longestConsecutive(vector<int>& nums) {
4+
unordered_map<int, int> count;
5+
// nums์— ํ•ด๋‹นํ•˜๋Š” index๋Š” 1์„ ํ‘œ์‹œ
6+
for (int num: nums) {
7+
count[num] = 1;
8+
}
9+
10+
vector<pair<int, int>> order(count.begin(), count.end());
11+
sort(order.begin(), order.end(), [](auto& a, auto& b) {return a.first < b.first;});
12+
13+
int length = 1;
14+
int currentLength = 1;
15+
if(order.empty()) return 0;
16+
for (int i = 1; i < order.size(); i++) {
17+
// ์—ฐ์†์ ์ธ์ง€ ํ™•์ธ
18+
if (order[i].first == order[i-1].first +1)
19+
currentLength++;
20+
else
21+
currentLength = 1;
22+
length = max(length, currentLength);
23+
}
24+
25+
return length;
26+
}
27+
};
28+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution {
2+
public:
3+
vector<int> topKFrequent(vector<int>& nums, int k) {
4+
unordered_map<int, int> count;
5+
6+
// 1. nums์˜ ๊ฐ ์›์†Œ count
7+
for (int num : nums) {
8+
count[num]++; // count์— num์— ํ•ด๋‹นํ•˜๋Š” value์—๋Š” 1์ฆ๊ฐ€
9+
}
10+
11+
// 2. ๋งŽ์ด ๋‚˜์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ
12+
vector<pair<int, int>> freqs(count.begin(), count.end());
13+
sort(freqs.begin(), freqs.end(), [](pair<int, int> a, pair<int, int> b) {
14+
return a.second > b.second;
15+
});
16+
17+
// 3. ์ƒ์œ„ k๊ฐœ ์ถ”์ถœ
18+
vector<int> max(k);
19+
for (int i = 0; i < k; i++) {
20+
max[i] = freqs[i].first;
21+
}
22+
23+
return max;
24+
}
25+
};
26+

โ€Žtwo-sum/rlawjd10.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
int compare(const void* a, const void* b) {
2+
return (*(int*)a - *(int*)b); // ์˜ค๋ฆ„์ฐจ์ˆœ
3+
}
4+
5+
bool containsDuplicate(int* nums, int numsSize) {
6+
qsort(nums, numsSize, sizeof(int), compare);
7+
8+
for (int i = 1; i < numsSize; i++) {
9+
if (nums[i] == nums[i-1])
10+
return 1;
11+
}
12+
return 0;
13+
}

0 commit comments

Comments
ย (0)