Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ธฐ๋Šฅ๊ฐœ๋ฐœ/ํŒŒ์ด์ฌ/python/์Šคํƒ, ํ

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’กsolutions )

โœ… ๋กœ์ง์€ ํฌ๊ฒŒ ๋‘ ํŒŒํŠธ๋กœ ๋‚˜๋‰œ๋‹ค. โ‘ ๋‚จ์€ ์ž‘์—… ์ผ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ โ‘ก์ผ์˜ ์ˆœ์„œ, ์ž‘์—… ์ผ์ˆ˜๋ฅผ ๊ณ ๋ คํ•ด ๋ฐฐํฌ ์‹œ ๋ช‡๊ฐœ์˜ ๊ธฐ๋Šฅ์„ ๋ฐฐํฌํ•˜๋Š” ์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ

โœ… ๋‘ ๋ฒˆ์งธ ํŒŒํŠธ์—์„œ ๊ณ„์† ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์—ˆ๋Š”๋ฐ, ๋‹คํ–‰ํžˆ ๊ทน๋ณต. ํ•ด๋‹น ๊ฐ’์—๋Š” ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•˜๊ณ  ์ฒ˜์Œ ๊ธฐ์ค€์œผ๋กœ ์žก๋Š” ์ธ๋ฑ์Šค๋ฅผ start๋กœ ์ •์˜ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ ํ•˜๋ฉฐ ์ž‘์—… ์ผ์ˆ˜๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด ํฌ์ธํŠธ

 

๐ŸŽซcode )

def solution(progresses, speeds):
    # ๋จผ์ € ๋‚จ์€ ์ž‘์—… ์ผ์ˆ˜๋ฅผ ๊ตฌํ•ด ๋ฆฌ์ŠคํŠธ์— ๋‹ด๋Š”๋‹ค
    cnt_lst = []
    for i in range(len(progresses)):
        # ์ง„๋„์œจ 100%์—์„œ ํ˜„์žฌ ์ง„ํ–‰๋œ ์™„๋ฃŒ์œจ์„ ๋นผ์ฃผ๊ณ 
        tmp = (100 - progresses[i])
        if (tmp % speeds[i]):
            # ํ•˜๋ฃจ ๊ฐœ๋ฐœ ์†๋„๋กœ ๋‚˜๋ˆ„๊ธฐ(์˜ฌ๋ฆผ)
            cnt = tmp // speeds[i] + 1
            cnt_lst.append(cnt)
        else:
            # ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด ๋ชซ ๊ทธ๋Œ€๋กœ ๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ธฐ
            cnt = tmp // speeds[i]
            cnt_lst.append(cnt)

    # ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ๋ฐฐํฌ๋งˆ๋‹ค ๋ช‡ ๊ฐœ์˜ ๊ธฐ๋Šฅ์ด ๋ฐฐํฌ๋˜๋Š” ์ง€ ํ™•์ธ
    start = 0 # ์ž‘์—…์ผ ์ˆ˜๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ค€์ด ๋˜๋Š” ์ธ๋ฑ์Šค
    result = []
    for idx in range(len(cnt_lst)):
        if cnt_lst[start] < cnt_lst[idx]:
            # ๊ธฐ์ค€๊ฐ’ ๋ณด๋‹ค ๊ทธ ๋‹ค์Œ๊ฐ’์ด ํฐ ๊ฒฝ์šฐ์— ๊ธฐ๋Šฅ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๊ณ 
            result.append(idx-start)
            # ๊ธฐ์ค€๊ฐ’ ์ธ๋ฑ์Šค ์—…๋ฐ์ดํŠธ
            start = idx
    result.append(len(cnt_lst)-start)
    return result

 

๐Ÿ“Œ description )

๋ฌธ์ œ์ถœ์ฒ˜ : https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ธฐ๋Šฅ๊ฐœ๋ฐœ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํŒ€์—์„œ๋Š” ๊ธฐ๋Šฅ ๊ฐœ์„  ์ž‘์—…์„ ์ˆ˜ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ์€ ์ง„๋„๊ฐ€ 100%์ผ ๋•Œ ์„œ๋น„์Šค์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜, ๊ฐ ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ์†๋„๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์•ž์— ์žˆ๋Š” ๏ฟฝ๏ฟฝ

programmers.co.kr

 

๋ฌธ์ œ ์„ค๋ช…

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํŒ€์—์„œ๋Š” ๊ธฐ๋Šฅ ๊ฐœ์„  ์ž‘์—…์„ ์ˆ˜ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ์€ ์ง„๋„๊ฐ€ 100%์ผ ๋•Œ ์„œ๋น„์Šค์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜, ๊ฐ ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ์†๋„๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์•ž์— ์žˆ๋Š” ๊ธฐ๋Šฅ๋ณด๋‹ค ๋จผ์ € ๊ฐœ๋ฐœ๋  ์ˆ˜ ์žˆ๊ณ , ์ด๋•Œ ๋’ค์— ์žˆ๋Š” ๊ธฐ๋Šฅ์€ ์•ž์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ๋ฐฐํฌ๋  ๋•Œ ํ•จ๊ป˜ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

๋จผ์ € ๋ฐฐํฌ๋˜์–ด์•ผ ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ž‘์—…์˜ ์ง„๋„๊ฐ€ ์ ํžŒ ์ •์ˆ˜ ๋ฐฐ์—ด progresses์™€ ๊ฐ ์ž‘์—…์˜ ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ์ ํžŒ ์ •์ˆ˜ ๋ฐฐ์—ด speeds๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๊ฐ ๋ฐฐํฌ๋งˆ๋‹ค ๋ช‡ ๊ฐœ์˜ ๊ธฐ๋Šฅ์ด ๋ฐฐํฌ๋˜๋Š”์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • ์ž‘์—…์˜ ๊ฐœ์ˆ˜(progresses, speeds๋ฐฐ์—ด์˜ ๊ธธ์ด)๋Š” 100๊ฐœ ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ์ž‘์—… ์ง„๋„๋Š” 100 ๋ฏธ๋งŒ์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์ž‘์—… ์†๋„๋Š” 100 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ๋ฐฐํฌ๋Š” ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ๋งŒ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•˜๋ฃจ์˜ ๋์— ์ด๋ฃจ์–ด์ง„๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ง„๋„์œจ์ด 95%์ธ ์ž‘์—…์˜ ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ํ•˜๋ฃจ์— 4%๋ผ๋ฉด ๋ฐฐํฌ๋Š” 2์ผ ๋’ค์— ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

progresses                                   speeds                                       return
[93,30,55] [1,30,5] [2,1]


์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ฒซ ๋ฒˆ์งธ ๊ธฐ๋Šฅ์€ 93% ์™„๋ฃŒ๋˜์–ด ์žˆ๊ณ  ํ•˜๋ฃจ์— 1%์”ฉ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ 7์ผ๊ฐ„ ์ž‘์—… ํ›„ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๋ฒˆ์งธ ๊ธฐ๋Šฅ์€ 30%๊ฐ€ ์™„๋ฃŒ๋˜์–ด ์žˆ๊ณ  ํ•˜๋ฃจ์— 30%์”ฉ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ 3์ผ๊ฐ„ ์ž‘์—… ํ›„ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ „ ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋Šฅ์ด ์•„์ง ์™„์„ฑ๋œ ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋Šฅ์ด ๋ฐฐํฌ๋˜๋Š” 7์ผ์งธ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.
์„ธ ๋ฒˆ์งธ ๊ธฐ๋Šฅ์€ 55%๊ฐ€ ์™„๋ฃŒ๋˜์–ด ์žˆ๊ณ  ํ•˜๋ฃจ์— 5%์”ฉ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ 9์ผ๊ฐ„ ์ž‘์—… ํ›„ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ 7์ผ์งธ์— 2๊ฐœ์˜ ๊ธฐ๋Šฅ, 9์ผ์งธ์— 1๊ฐœ์˜ ๊ธฐ๋Šฅ์ด ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

โ€ป ๊ณต์ง€ - 2020๋…„ 7์›” 14์ผ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•