๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๐ŸฏํŒ - PythonํŽธ

Luuuuucyยท2025๋…„ 2์›” 6์ผ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
1/2

์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ.. ๊ธฐ์—…์—์„œ ๋ณธ๋‹ค๊ณ  ํ•œ ํ›„ ์˜ค๋Š˜๋ถ€ํ„ฐ ์ œ๋Œ€๋กœ ๊ณต๋ถ€ํ•˜๋Š” ์ค‘...
์™œ ์ด๋ ‡๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์–ด๋ ค์šธ๊นŒ??? ํ•˜์ง€๋งŒ, ์ฐจ๊ทผ์ฐจ๊ทผ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋ฉด ์–ธ์  ๊ฐ€ ์›ฌ๋งŒํ•œ ๋ฌธ์ œ๋“ค์„ ํ’€ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์ง€์— ์˜ค๋ฅด์ง€ ์•Š์„๊นŒ?
๊ทธ๋ ‡๊ฒŒ ๋˜๊ธฐ๊นŒ์ง€ ๋งค์ผ ๊ณต๋ถ€ํ•˜์ž๊ตฌ! ๐Ÿ‘

1. ์ •๋ ฌ ํ›„ ์•ž์—์„œ๋ถ€ํ„ฐ ์„ ํƒํ•˜๋ฉด ์ตœ์ ์ด ๋˜๋Š” ๊ฒฝ์šฐ

  • ์ตœ๋Œ€ํ•œ ๋งŽ์€ ๊ฐœ์ˆ˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ
  • ์กฐํ•ฉ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†๊ณ , ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ตœ์ ์ผ ๋•Œ

[์ฝ”๋“œ]

๋ณต์žก๋„ O(N log N)

d.sort()  # ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ์ •๋ ฌ
total_budget = sum(d[:mid])  # ์•ž์—์„œ mid ๊ฐœ๋งŒ ์„ ํƒํ•ด์„œ ํ•ฉ์‚ฐ

[๋ฌธ์ œ ์˜ˆ์‹œ]

๐Ÿค‘ ์˜ˆ์‚ฐ๋ฌธ์ œ - ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค


์œ„์™€ ๊ฐ™์ด ํŠน์ • ๊ฐ’์— ๋ถ€ํ•ฉํ•˜๋„๋ก ์กฐํ•ฉ์„ ์™„์„ฑํ•ด์•ผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์Œ

[๋ฌธ์ œ ํ’€์ด]

์ฒ˜์Œ์— combinations O(2^N) ๋กœ ํ’€์—ˆ๋‹ค๊ฐ€, ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ๋‚˜๊ฐ€๋ฆฌ ๋๋‹ค ๐Ÿ˜‚
๊ทธ๋ž˜์„œ GPT์—๊ฒŒ ๋ฌผ์–ด๋ณด๋‹ˆ ์ด ๋ฐฉ๋ฒ•์„ ์ถ”์ฒœํ•ด์ฃผ์—ˆ๋‹ค.

def solution(d, budget):
    answer = 0 
    
    left, right = 1, len(d)

    d.sort()
    total_budget = []
    while left <= right:
        mid = (left + right) // 2  
        
        total_budget = sum(d[:mid])   
        
        if total_budget > budget:  
            right = mid - 1 
        else: 
            answer = mid 
            left = mid + 1  

    return answer

2. ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ์„ ๋•Œ๋Š” in ์“ฐ๊ธฐ ์ „์— set ์‚ฌ์šฉ!

๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ •๊ฐ’์„ ์ฐพ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์€๊ทผ ๋งŽ์€๋ฐ, ๊ทธ๋Ÿด ๋•Œ๋งˆ๋‹ค ๋ฆฌ์ŠคํŠธ์—์„œ in์„ ์“ฐ์ง€๋ง๊ณ  set์œผ๋กœ ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•œ ํ›„ in์„ ์“ฐ๋ฉด ํ•ด์‹œํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•ด์„œ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ O(N) -> O(1)๋กœ ํ›จ์”ฌ ๋นจ๋ผ์ง

arr = [3, 5, 1, 7, 9]
target = 7

if target in arr:
    print("์ฐพ์•˜๋‹ค!")  

์œ„ ์ฝ”๋“œ ๋ณด๋‹ค


arr_set = set(arr) ## ์ด๋ ‡๊ฒŒ ํ•œ ๋ฒˆ ํƒ€์ž…์„ ๋ฐ”๊ฟ”์ฃผ๊ณ  ์ง„ํ–‰
if target in arr_set:
    print("์ฐพ์•˜๋‹ค!")

3. ์ตœ์†Œ๊ฐ’๊ณผ, ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค๋ฉด? list <<< heap

-- ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ ๋˜๋Š”๋Œ€๋กœ ๊ณ„์† ์ถ”๊ฐ€์•„์•„

profile
Hi, I am Lucy. Welcome to Moon in the Room. ๐ŸŒ

0๊ฐœ์˜ ๋Œ“๊ธ€