ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

https://app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/

์ฃผ์–ด์ง„ ๋ฐฐ์—ด์„ K์˜ ์ˆ˜๋งŒํผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ shiftํ•œ ํ›„ ๋ณ€ํ™˜๋œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋ฌธ์ œ ํ’€์ด

K๊ฐ€ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด ๋ณด๋‹ค ํด ๊ฒฝ์šฐ, K ๊ฐ’์„ K %= len(A)๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด K๊ฐ€ ํฌ๋”๋ผ๋„ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด ํฌ๊ธฐ ๋งŒํผ shiftํ•œ๋‹ค.

์ฝ”๋“œ

from collections import deque


def solution(A, K):
    length = len(A)

    if not length or length == K:
        return A

    if K > length:
        K %= length

    lst = deque(A)
    lst.rotate(K)

    return list(lst)
  • deque๋ฅผ ํ™œ์šฉํ•˜๋ฉด, rotate๋ฅผ ํ†ตํ•ด shift๋ฅผ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์— ๋น„ํ•ด rotate๋Š” ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์•ž, ๋’ค๋กœ shift ํ•œ๋‹ค.
728x90
๋ฐ˜์‘ํ˜•
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€