Skip to content

Commit 87b134c

Browse files
committed
#272 #282 solution
1 parent e44704f commit 87b134c

File tree

4 files changed

+108
-6
lines changed

4 files changed

+108
-6
lines changed
Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,32 @@
1+
/*
2+
ํ’€์ด :
3+
์ตœ๋Œ€ ๋„“์ด๋Š” ์–‘ ๋ ๊ธฐ๋‘ฅ ๊ธธ์ด ์ค‘ ์งง์€ ์ชฝ์„ ๊ธฐ์ค€์œผ๋กœ ์ •ํ•ด์ง„๋‹ค
4+
์–‘ ๋์—์„œ ๊ธฐ๋‘ฅ์„ ์‹œ์ž‘ํ•˜๊ณ  ๋‘˜ ์ค‘ ์งง์€ ์ชฝ์„ ์•ˆ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ์ตœ๋Œ€ ๋„“์ด๋ฅผ ์ฐพ๋Š”๋‹ค
5+
6+
height์˜ ๊ฐœ์ˆ˜ : N
7+
8+
TC : O(N)
9+
10+
SC : O(1)
11+
*/
12+
113
class Solution {
214
public:
315
int maxArea(vector<int>& height) {
416
int left = 0;
517
int right = height.size() - 1;
6-
int ans = 0;
18+
int max_area = 0;
719

820
while (left < right)
921
{
10-
int cur = (right - left) * min(height[left], height[right]);
11-
if (cur > ans)
12-
ans = cur;
22+
int cur_area = (right - left) * min(height[left], height[right]);
23+
if (cur_area > max_area)
24+
max_area = cur_area;
1325
if (height[left] <= height[right])
1426
left++;
1527
else
1628
right--;
1729
}
18-
return ans;
30+
return max_area;
1931
}
2032
};
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
nums์™€ ๊ธธ์ด๊ฐ€ ๊ฐ™์€ dp๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค
3+
dp[i]์˜ ๊ฐ’์€ nums[i]์œผ๋กœ ๋๋‚˜๋Š” LIS์˜ ๊ธธ์ด
4+
i ์ดํ›„์˜ j์— ๋Œ€ํ•ด nums[j] > nums[i]์ผ ๊ฒฝ์šฐ nums[j]๋ฅผ nums[i]๋กœ ๋๋‚˜๋Š” LIS์— ๋ถ™์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ
5+
dp[j]์™€ dp[i + 1]์„ ๋น„๊ตํ•ด ํฐ ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธ
6+
7+
nums์˜ ๊ธธ์ด : N
8+
9+
TC : O(N^2)
10+
๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์˜ ๋ฐ˜๋ณต๋ฌธ
11+
12+
SC : O(N)
13+
dp์˜ ๊ธธ์ด๋Š” nums๊ธธ์ด์— ๋น„๋ก€
14+
*/
15+
16+
class Solution {
17+
public:
18+
int lengthOfLIS(vector<int>& nums) {
19+
vector<int> dp(nums.size(), 1);
20+
int max_len = 1;
21+
22+
for (int i = 0; i < nums.size(); i++)
23+
for (int j = i + 1; j < nums.size(); j++)
24+
{
25+
if (nums[j] > nums[i])
26+
{
27+
dp[j] = max(dp[i] + 1, dp[j]);
28+
max_len = max(dp[j], max_len);
29+
}
30+
}
31+
return max_len;
32+
}
33+
};

โ€Žspiral-matrix/sungjinwi.cpp

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
ํ’€์ด :
3+
์ƒํ•˜์ขŒ์šฐ ๋ฒ”์œ„์ง€์ •ํ•ด์„œ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ n_rows, n_cols ๊ธธ์ด๋งŒํผ ์ด๋™์œผ๋กœ ํ’€์ด
4+
col ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ด๋ฉด ์ด๋™ํ•  row ๊ฐ์†Œ, row ๋ฐฉํ–ฅ ์›€์ง์ด๋ฉด n_cols 1 ๊ฐ์†Œ
5+
row, col ํ•œ๋ฒˆ์”ฉ ์ด๋™ํ•˜๋ฉด direction *= -1๋กœ ๋ฐฉํ–ฅ์„ ๋ฐ”๊ฟ”์ค€๋‹ค
6+
7+
matrix ํฌ๊ธฐ : M * N
8+
9+
TC : O(M * N)
10+
matrix ์ „์ฒด ์ˆœํ™˜
11+
12+
SC : O(1)
13+
๋ฆฌํ„ดํ•  ans ์ œ์™ธํ•˜๋ฉด ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์€ ์ƒ์ˆ˜ ๊ฐœ์ˆ˜์˜ ๋ณ€์ˆ˜
14+
*/
15+
16+
class Solution {
17+
public:
18+
vector<int> spiralOrder(vector<vector<int>>& matrix) {
19+
int n_rows = matrix.size();
20+
int n_cols = matrix[0].size();
21+
vector<int> ans;
22+
23+
int row = 0, col = -1;
24+
int direction = 1;
25+
26+
while (n_rows > 0 && n_cols > 0)
27+
{
28+
for (int i = 0; i < n_cols; i++)
29+
{
30+
col += direction;
31+
ans.push_back(matrix[row][col]);
32+
}
33+
n_rows--;
34+
35+
for (int i = 0; i < n_rows; i++)
36+
{
37+
row += direction;
38+
ans.push_back(matrix[row][col]);
39+
}
40+
n_cols--;
41+
42+
direction *= -1;
43+
}
44+
return ans;
45+
}
46+
};

โ€Žvalid-parentheses/sungjinwi.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
/*
2-
2+
ํ’€์ด :
3+
stack์„ ์ด์šฉํ•ด์„œ ๊ด„ํ˜ธ๋ฅผ ๋„ฃ๊ณ  ๋บธ๋‹ค.
4+
๋‹ซ๋Š” ๊ด„ํ˜ธ ),],}๋ฅผ ๋งŒ๋‚ฌ์„ ๋•Œ ๊ฐ€์žฅ ์œ„์˜ ๊ด„ํ˜ธ๊ฐ€ ๋Œ€์‘ํ•˜๋Š” ๊ด„ํ˜ธ๋ฉด ์ œ๊ฑฐํ•˜๊ณ  ๋น„์–ด์žˆ๊ฑฐ๋‚˜ ๋งž์ง€ ์•Š๋Š” ๊ด„ํ˜ธ๋ฉด return false
5+
string์„ ๋ชจ๋‘ ์ˆœํšŒํ–ˆ์„ ๋–„ stack์ด ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด return false
6+
7+
s์˜ ๊ธธ์ด N
8+
9+
TC : O(N)
10+
s์— ๋Œ€ํ•ด ๋ฐ˜๋ณต 1ํšŒ
11+
12+
SC : O(N)
13+
์ตœ์•…์˜ ๊ฒฝ์šฐ stack ํฌ๊ธฐ๋Š” s์˜ ๊ธธ์ด์— ๋น„๋ก€
314
*/
415

516
class Solution {

0 commit comments

Comments
ย (0)