๐Ÿ’ป Coding/[Algorithm]Python

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค | ๊ทค ๊ณ ๋ฅด๊ธฐ โญโญ - Python

๐Ÿฉท ๋ฏผ์˜ 2024. 4. 3. 17:09

๐Ÿ—’๏ธ ๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/138476 

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

- ๊ทค K๊ฐœ๋ฅผ ์ƒ์ž์— ํฌ๊ธฐ๋ณ„๋กœ ๋ถ„๋ฅ˜๋ฅผ ํ•  ๊ฒƒ์ด๋‹ค.

- ์ด ๋•Œ, ๊ทค ํฌ๊ธฐ์˜ ์ข…๋ฅ˜๋ฅผ ์ตœ์†Œํ™” ํ•œ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

 

 

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜

1. cnt_list ๋ฅผ tangerine์˜ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ์„ค์ •

2. ๊ทค ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ๊ฐœ์ˆ˜ ์นด์šดํŠธ ํ•ด์ฃผ๊ธฐ

3. cnt_list๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

 

4-1. while ๋ฌธ์„ ์ด์šฉํ•˜์—ฌ k > 0 ์ผ ๋•Œ, cnt_list ๊ฐ’์„ k์—์„œ ํ•˜๋‚˜์”ฉ ๋นผ์ฃผ๊ณ  ํšŸ์ˆ˜๋ฅผ answer += 1 (ํ‹€๋ฆฐ ํ’€์ด)

 

4-2. for๋ฌธ์„ ์ด์šฉํ•˜์—ฌ k = k - cnt_list[i] ํ›„์— k๊ฐ€ 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ์ž‘์„ ๋•Œ์˜ cnt_list ์ธ๋ฑ์Šค + 1 ๊ฐ’์„ answer

 

โœ๏ธ ๋‚ด ํ’€์ด

## ํ‹€๋ฆฐ ํ’€์ด

def solution(k, tangerine):
    cnt_list = [0] * max(tangerine)
    answer = 0
    
    for i in range(len(tangerine)):
        cnt_list[tangerine[i]-1] += 1
        
    cnt_list.sort(reverse = True)
    print(cnt_list)
    
    while k > 0:
        for i in cnt_list:
            if k >= i:
                k = k - i
                print(k)
                answer += 1
        break
    
    return answer

 

## ์ •๋‹ต ํ’€์ด

def solution(k, tangerine):
    cnt_list = [0] * max(tangerine)
    answer = 0
    
    for i in range(len(tangerine)):
        cnt_list[tangerine[i]-1] += 1
        
    cnt_list.sort(reverse = True)
    
    for i in range(len(cnt_list)):
        k = k - cnt_list[i]
        if k <= 0:
            answer = i + 1
            break
        
    return answer

 

๐Ÿ˜Š ํ›„๊ธฐ

์ฒซ ๋ฒˆ์งธ ํ’€์ด๋กœ ๋ฌธ์ œ๋ฅผ ํ’€ ๊ฒฝ์šฐ ์•„๋ž˜ ๋ฐ˜๋ก€์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๊ฒŒ ๋œ๋‹ค.

 

์ฒ˜์Œ ํ‘ผ ํ’€์ด์˜ ๊ฒฝ์šฐ, ๋ฌด์กฐ๊ฑด k๋ณด๋‹ค ์ž‘์€ ๊ฐ’์˜ ๊ทค ๊ฐœ์ˆ˜๋กœ ๋„ฃ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ k๋ณด๋‹ค ํฌ๋”๋ผ๋„ ๋‚จ์€ ๊ทค๋กœ ๋ฐ•์Šค๋ฅผ ์ฑ„์šฐ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— k์—์„œ ๊ฐ’์„ ๋บ€ ํšŸ์ˆ˜๋กœ answer์„ ์นด์šดํŠธ ํ•  ๊ฒŒ ์•„๋‹Œ, cnt_list์˜ ์ธ๋ฑ์Šค ๊ฐ’์œผ๋กœ ์นด์šดํŠธ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.