[Programmers] ν”„λ¦°ν„°

Updated:

ν”„λ¦°ν„°

ν”„λ¦°ν„° λ₯Ό ν΄λ¦­ν•˜λ©΄ λ°”λ‘œ μ΄λ™ν•œλ‹€.

μ—„μ²­ λ°˜κ°€μš΄ λ¬Έμ œμ˜€λ‹€!! μ™œλƒν•˜λ©΄ 1λ…„ μ „ 쯀에 λ°±μ€€μ—μ„œ ν’€μ—ˆλ˜ λ¬Έμ œμ˜€κΈ° λ•Œλ¬Έμ΄λ‹€.

κ·Έλ•ŒλŠ” μ „λΆ€ C 둜 ν’€κ³ μžˆμ—ˆλŠ”λ° 파이썬으둜 ν’€λ©΄μ„œ μƒˆμ‚Ό νŽΈν•˜λ‹€λŠ”κ±Έ 또 λŠκΌˆλ‹€..

λ‹Ήμ‹œμ— ν’€μ—ˆλ˜ μ½”λ“œλ₯Ό λ΄€λŠ”λ° 큐 λ§Œλ“€κ³ .. 팝 λ§Œλ“€κ³ .. 포인터 μ“°κ³ .. 쌩 λ‚œλ¦¬λ₯Ό 뢀리고 μžˆμ—ˆλ‹€.

λ‚˜λŠ” find_loc 리슀트λ₯Ό λ”°λ‘œ λ§Œλ“€μ–΄ priorities λ¦¬μŠ€νŠΈμ™€ 같이 관리λ₯Ό ν–ˆλ‹€.

def solution(priorities, location):
    find_loc = [i for i in range(len(priorities))]
    print_cnt = 0

    while(True):
        if priorities[0] != max(priorities):  # λ‚˜λ³΄λ‹€ μš°μ„ μˆœμœ„ λ†’μ€κ²Œ μžˆλ‹€ ?
            item = priorities.pop(0)
            priorities.append(item)

            item = find_loc.pop(0)
            find_loc.append(item)
        else:  # λ‚΄κ°€ μš°μ„ μˆœμœ„κ°€ 제일 λ†’λ‹€ ?
            priorities.pop(0)
            print_cnt += 1

            if find_loc.pop(0) == location:
                return print_cnt

μ•Œκ³ λ¦¬μ¦˜μ€ λ¬Έμ œμ—μ„œ 주어진 κ·ΈλŒ€λ‘œ λ‚˜λ³΄λ‹€ μš°μ„ μˆœμœ„κ°€ λ†’μ€κ²Œ μžˆλ‹€λ©΄ pop ν•΄μ„œ λ‹€μ‹œ append ν•΄μ£Όκ³ 

λ‚΄κ°€ μš°μ„ μˆœμœ„κ°€ 제일 λ†’λ‹€λ©΄ pop 만 ν•œ ν›„ 이게 λ‚΄κ°€ μ›ν•˜λŠ” λ¬Έμ„œμΈμ§€ 확인을 ν•΄μ£Όμ—ˆλ‹€.

ꡬ쑰만 보면 queue 와 λ˜‘κ°™λ‹€. 맨 μ•žμ—μ„œ λΉΌκ³  맨 λ’€λ‘œ λ„£μ–΄μ£Όλ‹ˆκΉŒ!

그런데 python μ—μ„œ 이미 queue 와 μš°μ„ μˆœμœ„ν λ“±λ“± 자료ꡬ쑰λ₯Ό 라이브러리둜 지원을 ν•΄μ£Όκ³  μžˆμ—ˆλ‹€.

λ‹€μŒμ— 문제 ν’€ λ•Œ μ‚¬μš©ν•΄λ΄μ•Όκ² λ‹€.


Categories:

Updated:

Leave a comment