개발자 HOON
πŸ› HOON DEVLog
개발자 HOON
전체 방문자
였늘
μ–΄μ œ
  • 😎 전체 μΉ΄ν…Œκ³ λ¦¬ (137)
    • πŸ“ μ‹ μž… 인터뷰 μ€€λΉ„ (7)
    • πŸ¦” μ·¨μ—…μ€€λΉ„ 기둝 (7)
    • β˜• μžλ°” : JAVA (5)
    • 🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS (80)
    • 🌱 λ°±μ—”λ“œ : Backend (13)
    • πŸ§ͺ 컴퓨터과학 : CS (11)
    • πŸ—‚ λ°μ΄ν„°λ² μ΄μŠ€ : DB (1)
    • πŸƒ‍♂️ DEVLOG (8)
    • βš™οΈ Trouble Shooting (5)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • GitHub
  • Resume

곡지사항

인기 κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
개발자 HOON

πŸ› HOON DEVLog

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] κΈ°λŠ₯개발 (level2, python)
🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] κΈ°λŠ₯개발 (level2, python)

2022. 9. 10. 13:49

문제 μ„€λͺ…

 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ νŒ€μ—μ„œλŠ” κΈ°λŠ₯ κ°œμ„  μž‘μ—…μ„ μˆ˜ν–‰ μ€‘μž…λ‹ˆλ‹€. 각 κΈ°λŠ₯은 진도가 100%일 λ•Œ μ„œλΉ„μŠ€μ— λ°˜μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

또, 각 κΈ°λŠ₯의 κ°œλ°œμ†λ„λŠ” λͺ¨λ‘ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— 뒀에 μžˆλŠ” κΈ°λŠ₯이 μ•žμ— μžˆλŠ” κΈ°λŠ₯보닀 λ¨Όμ € 개발될 수 있고, μ΄λ•Œ 뒀에 μžˆλŠ” κΈ°λŠ₯은 μ•žμ— μžˆλŠ” κΈ°λŠ₯이 배포될 λ•Œ ν•¨κ»˜ λ°°ν¬λ©λ‹ˆλ‹€.

 

λ¨Όμ € λ°°ν¬λ˜μ–΄μ•Ό ν•˜λŠ” μˆœμ„œλŒ€λ‘œ μž‘μ—…μ˜ 진도가 적힌 μ •μˆ˜ λ°°μ—΄ progresses와 각 μž‘μ—…μ˜ 개발 속도가 적힌 μ •μˆ˜ λ°°μ—΄ speedsκ°€ μ£Όμ–΄μ§ˆ λ•Œ 각 λ°°ν¬λ§ˆλ‹€ λͺ‡ 개의 κΈ°λŠ₯이 λ°°ν¬λ˜λŠ”μ§€λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•˜μ„Έμš”.


μ œν•œ 사항

 

  • μž‘μ—…μ˜ 개수(progresses, speedsλ°°μ—΄μ˜ 길이)λŠ” 100개 μ΄ν•˜μž…λ‹ˆλ‹€.
  • μž‘μ—… μ§„λ„λŠ” 100 미만의 μžμ—°μˆ˜μž…λ‹ˆλ‹€.
  • μž‘μ—… μ†λ„λŠ” 100 μ΄ν•˜μ˜ μžμ—°μˆ˜μž…λ‹ˆλ‹€.
  • λ°°ν¬λŠ” ν•˜λ£¨μ— ν•œ 번만 ν•  수 있으며, ν•˜λ£¨μ˜ 끝에 이루어진닀고 κ°€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μ§„λ„μœ¨μ΄ 95%인 μž‘μ—…μ˜ 개발 속도가 ν•˜λ£¨μ— 4%라면 λ°°ν¬λŠ” 2일 뒀에 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

μž…μΆœλ ₯ 예
 

μž…μΆœλ ₯ 예 μ„€λͺ…

 

μž…μΆœλ ₯ 예 #1


첫 번째 κΈ°λŠ₯은 93% μ™„λ£Œλ˜μ–΄ 있고 ν•˜λ£¨μ— 1%μ”© μž‘μ—…μ΄ κ°€λŠ₯ν•˜λ―€λ‘œ 7일간 μž‘μ—… ν›„ 배포가 κ°€λŠ₯ν•©λ‹ˆλ‹€.
두 번째 κΈ°λŠ₯은 30%κ°€ μ™„λ£Œλ˜μ–΄ 있고 ν•˜λ£¨μ— 30%μ”© μž‘μ—…μ΄ κ°€λŠ₯ν•˜λ―€λ‘œ 3일간 μž‘μ—… ν›„ 배포가 κ°€λŠ₯ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이전 첫 번째 κΈ°λŠ₯이 아직 μ™„μ„±λœ μƒνƒœκ°€ μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— 첫 번째 κΈ°λŠ₯이 λ°°ν¬λ˜λŠ” 7일째 λ°°ν¬λ©λ‹ˆλ‹€.
μ„Έ 번째 κΈ°λŠ₯은 55%κ°€ μ™„λ£Œλ˜μ–΄ 있고 ν•˜λ£¨μ— 5%μ”© μž‘μ—…μ΄ κ°€λŠ₯ν•˜λ―€λ‘œ 9일간 μž‘μ—… ν›„ 배포가 κ°€λŠ₯ν•©λ‹ˆλ‹€.

λ”°λΌμ„œ 7일째에 2개의 κΈ°λŠ₯, 9일째에 1개의 κΈ°λŠ₯이 λ°°ν¬λ©λ‹ˆλ‹€.

 

μž…μΆœλ ₯ 예 #2


λͺ¨λ“  κΈ°λŠ₯이 ν•˜λ£¨μ— 1%μ”© μž‘μ—…μ΄ κ°€λŠ₯ν•˜λ―€λ‘œ, μž‘μ—…μ΄ λλ‚˜κΈ°κΉŒμ§€ 남은 μΌμˆ˜λŠ” 각각 5일, 10일, 1일, 1일, 20일, 1μΌμž…λ‹ˆλ‹€. μ–΄λ–€ κΈ°λŠ₯이 λ¨Όμ € μ™„μ„±λ˜μ—ˆλ”λΌλ„ μ•žμ— μžˆλŠ” λͺ¨λ“  κΈ°λŠ₯이 μ™„μ„±λ˜μ§€ μ•ŠμœΌλ©΄ 배포가 λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.

λ”°λΌμ„œ 5일째에 1개의 κΈ°λŠ₯, 10일째에 3개의 κΈ°λŠ₯, 20일째에 2개의 κΈ°λŠ₯이 λ°°ν¬λ©λ‹ˆλ‹€.

 


 

풀이 μ½”λ“œ

from collections import deque

def solution(progresses, speeds):
    answer = []
    
    pqueue = deque(progresses)
    squeue = deque(speeds)
    
    while pqueue:
        deploy = 0
        
        for i in range(len(pqueue)):
            pqueue[i] += squeue[i]
        
        while pqueue and pqueue[0] >= 100:
            pqueue.popleft()
            squeue.popleft()
            deploy += 1
            
        if deploy != 0:
            answer.append(deploy)
        
    return answer

큐λ₯Ό μ‚¬μš©ν•΄ ν’€μ—ˆλ‹€.

μš°μ„ μ μœΌλ‘œ λ°°ν¬λ˜μ–΄μ•Ό ν•˜λŠ” μˆœμ„œλ‘œ λ¦¬μŠ€νŠΈμ— λ“€μ–΄κ°„ μƒνƒœμ΄λ―€λ‘œ, κ°€μž₯ μ•žμ˜ μš”μ†Œκ°€ 100%의 μ§„ν–‰λ₯ μ„ λ„˜μ€ κ²½μš°μ— 쑰건에 맞게 계속 popleftλ₯Ό ν•΄μ£ΌλŠ” λ°©μ‹μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν–ˆλ‹€.

 

 

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ 동일쑰건 (μƒˆμ°½μ—΄λ¦Ό)

'🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ•Όκ·Ό μ§€μˆ˜ (level3, python)  (0) 2022.09.10
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] n^2 λ°°μ—΄ 자λ₯΄κΈ° (level2, python)  (0) 2022.09.10
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μœ„μž₯ (level2, python)  (0) 2022.09.10
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] νŠœν”Œ (level2, python)  (0) 2022.09.09
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] κ΄„ν˜Έ νšŒμ „ν•˜κΈ° (level2, python)  (0) 2022.09.09
    '🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ•Όκ·Ό μ§€μˆ˜ (level3, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] n^2 λ°°μ—΄ 자λ₯΄κΈ° (level2, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μœ„μž₯ (level2, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] νŠœν”Œ (level2, python)
    개발자 HOON
    개발자 HOON
    쒋은 λ°±μ—”λ“œ μ—”μ§€λ‹ˆμ–΄κ°€ 되기 μœ„ν•œ 기둝을 λͺ¨μ•˜μŠ΅λ‹ˆλ‹€. # μ£Όλ‹ˆμ–΄ # λ°±μ—”λ“œ # 개발자

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”