Skip to content

Commit 2d1aec0

Browse files
Create taurus09318976.py
1 parent a1bf24a commit 2d1aec0

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
'''
2+
- ์ด ๋ฌธ์ œ๋Š” ์ตœ์ €๊ฐ€์— ํ•œ ์ฃผ์‹์„ ์‚ฌ์„œ, ๊ทธ ์ดํ›„์— ์ตœ๋Œ€๊ฐ€์— ํŒ”์•„์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž„
3+
- ๋งŒ์•ฝ ์ด์ต์„ ๋‚ผ ์ˆ˜ ์—†์œผ๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•จ
4+
์กฐ๊ฑด :
5+
1) ๋ฐ˜๋“œ์‹œ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ๊ณ  ํ•œ ๋ฒˆ๋งŒ ํŒ”์•„์•ผ ํ•˜๋ฉฐ, ํŒ”๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ์‚ฌ์•ผ ํ•จ
6+
2) ํŒ” ๋•Œ๋Š” ๊ตฌ๋งคํ•œ ๋‚  ์ดํ›„์˜ ๋‚ ์งœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
7+
8+
Example 1. ์˜ ๊ฒฝ์šฐ
9+
๋‚ ์งœ (index)| ๊ฐ€๊ฒฉ (price) | min_price (์ตœ์ €๊ฐ€) | current_profit (ํ˜„์žฌ ์ด์ต) | max_profit (์ตœ๋Œ€ ์ด์ต)
10+
0 7 7(์ดˆ๊ธฐ๊ฐ’) - 0(์ดˆ๊ธฐ๊ฐ’)
11+
1 1 7 -> 1 - 0
12+
2 5 1 5 - 1 = 4 0 -> 4
13+
3 3 1 3 - 1 = 2 4
14+
4 6 1 6 - 1 = 5 4 -> 5
15+
5 4 1 4 - 1 = 3 5
16+
17+
'''
18+
class Solution:
19+
def maxProfit(self, prices: List[int]):
20+
# ์ž…๋ ฅ ๋ฐฐ์—ด์ด ๋น„์–ด ์žˆ์œผ๋ฉด ์ฃผ๊ฐ€๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๊ฑฐ๋ž˜ํ•  ์ˆ˜ ์—†์Œ. ๋”ฐ๋ผ์„œ ์ตœ๋Œ€ ์ด์ต์€ 0
21+
if not prices:
22+
return 0
23+
24+
# ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ€๊ฒฉ์„ ์ตœ์ €๊ฐ€๋กœ ์ดˆ๊ธฐํ™”ํ•จ. ์ดํ›„ ๊ฐ€๊ฒฉ๊ณผ ๋น„๊ตํ•  ๊ธฐ์ค€์ ์ด ๋จ
25+
min_price = prices[0]
26+
# ์ด์ต์ด ์—†์œผ๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ๋Œ€ ์ด์ต์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•จ
27+
max_profit = 0
28+
29+
for price in prices[1:]: # ๋‘ ๋ฒˆ์งธ ๊ฐ€๊ฒฉ๋ถ€ํ„ฐ ์ˆœํšŒ. ์ฒซ๋ฒˆ์งธ ๊ฐ€๊ฒฉ์€ ์ด๋ฏธ min_price์— ํ• ๋‹นํ–ˆ์œผ๋ฏ€๋กœ ์ œ์™ธํ•จ.
30+
if price < min_price: # ํ˜„์žฌ ๊ฐ€๊ฒฉ์ด ์ตœ์ €๊ฐ€๋ณด๋‹ค ์ž‘์œผ๋ฉด ๊ฐฑ์‹ . ๋” ์‹ธ๊ฒŒ ์‚ด ์ˆ˜ ์žˆ๋Š” ๋‚ ์„ ์ฐพ๋Š” ๊ณผ์ •์ž„
31+
min_price = price
32+
else:
33+
profit = price - min_price # ํ˜„์žฌ ๊ฐ€๊ฒฉ์—์„œ ์ตœ์ €๊ฐ€๋ฅผ ๋นผ์„œ, ์ง€๊ธˆ ํŒ”๋ฉด ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ด์ต ๊ณ„์‚ฐ
34+
if profit > max_profit: # ๊ณ„์‚ฐํ•œ ์ด์ต์ด ๊ธฐ์กด์˜ ์ตœ๋Œ€ ์ด์ต๋ณด๋‹ค ํฌ๋ฉด max_profit ๊ฐฑ์‹ 
35+
max_profit = profit
36+
37+
return max_profit # ๋ฐ˜๋ณต์ด ๋๋‚˜๋ฉด ์ตœ๋Œ€ ์ด์ต์„ ๋ฐ˜ํ™˜
38+
39+
40+
'''
41+
์‹œ๊ฐ„ ๋ณต์žก๋„ : O(n)
42+
๋ฐฐ์—ด์„ ํ•œ ๋ฒˆ๋งŒ ์ˆœํšŒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž…๋ ฅ ํฌ๊ธฐ n์— ๋น„๋ก€ํ•จ
43+
n์€ prices ๋ฐฐ์—ด์˜ ๊ธธ์ด
44+
45+
๊ณต๊ฐ„ ๋ณต์žก๋„ : O(1)
46+
์ถ”๊ฐ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜๋Š” min_price, max_profit, profit 3๊ฐœ๋ฟ์ž„(์ƒ์ˆ˜ ๊ฐœ์ˆ˜),
47+
์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€์ง€ ์•Š์Œ
48+
์ž…๋ ฅ ๋ฐฐ์—ด ์™ธ์— ๋ณ„๋„์˜ ์ €์žฅ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜์ง€ ์•Š์Œ
49+
'''
50+

0 commit comments

Comments
ย (0)