HackerRank ‘Left Rotation’ Solution

문제 : https://www.hackerrank.com

출처 : https://www.martinkysel.com/

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the rotLeft function below.
def rotLeft(a, d):

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    nd = input().split()

    n = int(nd[0])

    d = int(nd[1])

    a = list(map(int, input().rstrip().split()))

    result = rotLeft(a, d)

    fptr.write(' '.join(map(str, result)))
    fptr.write('\n')

    fptr.close()

Solution

# Complete the rotLeft function below.
def rotLeft(a, d):
    return a[d:] + a[:d]

생각

배열의 [1,2,3,4,5] 가 2회전 하면  
[3,4,5,1,2]가 됨. 

처음에는 loop돌려서 하는 방법을 생각했지만
해답을 보니 생각보다 단순 했음.

a[d:] # d 번째 뒤에 있는 배열 모두
a[:d] # d 번째 앞에 있는 배열 모두

시간 복잡도

시간 복잡도: O(N) 공간 복잡도: O(N)


Written by@MuseKim
Muse Kim