ν‹°μŠ€ν† λ¦¬ λ·°

728x90
λ°˜μ‘ν˜•

문제

 

SW Expert Academy

SW ν”„λ‘œκ·Έλž˜λ° μ—­λŸ‰ 강화에 도움이 λ˜λŠ” λ‹€μ–‘ν•œ ν•™μŠ΅ 컨텐츠λ₯Ό ν™•μΈν•˜μ„Έμš”!

swexpertacademy.com

 

문제 풀이

 8개의 μˆ«μžκ°€ μ£Όμ–΄μ§ˆ λ•Œ 1 - 5의 숫자λ₯Ό λ°˜λ³΅ν•˜λ©΄μ„œ 숫자λ₯Ό κ°μ†Œν•œ 후에 λ§ˆμ§€λ§‰ μˆ«μžκ°€ 0이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•˜λŠ” λ¬Έμ œμ΄λ‹€. λ¬Έμ œλŠ” `deque`λ₯Ό ν™œμš©ν•˜λ©΄ μ‰½κ²Œ ν’€ 수 μžˆλ‹€. λ°˜λ³΅λ¬Έμ„ λŒλ©΄μ„œ κ°μ†Œμ‹œν‚¬ 수 μžˆλŠ” 수(μ½”λ“œμ—μ„œλŠ” delta라고 ν•˜μ˜€λ‹€.)λ₯Ό 톡해 맨 μ•žμ˜ 숫자λ₯Ό κ°μ†Œμ‹œν‚€κ³  맨 λ’€λ‘œ 보낸닀. μ΄λ•Œ `list`의 `pop(0)`와 `append`λ₯Ό μ‚¬μš©ν•˜μ—¬λ„ λ˜μ§€λ§Œ `deque`λ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” `pop(0)`의 경우 μ‹œκ°„ λ³΅μž‘λ„κ°€ O(N)이기 λ•Œλ¬Έμ΄λ‹€.

 

 μ΄ λ¬Έμ œμ—μ„œλŠ” `list`와 `deque` μ–΄λŠ 것을 μ‚¬μš©ν•˜μ—¬λ„ 상관 μ—†μ§€λ§Œ, `pop(0)`κ°€ λ§Žμ„ 경우 μ‹œκ°„μ΄ 였래 걸리게 λœλ‹€.

 

 

μ½”λ“œ

from collections import deque


for t in range(1, 11):
    input()
    array = deque(list(map(int, input().split())))
    delta = 1

    while True:
        cur_num = array.popleft()
        if cur_num - delta <= 0:
            array.append(0)
            break
        else:
            array.append(cur_num - delta)

        delta += 1

        if delta > 5:
            delta = 1

    print('#' + str(t), *array)

 

728x90
λ°˜μ‘ν˜•

'πŸ‘¨β€πŸ’» μ½”λ”©ν…ŒμŠ€νŠΈ > SWEA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

SWEA: 1289 μ›μž¬μ˜ λ©”λͺ¨λ¦¬ λ³΅κ΅¬ν•˜κΈ°  (0) 2020.10.07
SWEA: 1234 λΉ„λ°€λ²ˆν˜Έ  (0) 2020.10.07
SWEA: 1221 GNS  (0) 2020.10.07
SWEA: 1220 Magnetic  (0) 2020.10.07
SWEA: 1215 회문1  (0) 2020.10.07
λŒ“κΈ€
κΈ€ 보관함
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€