HackerRank Arrays: Left Rotation

x·2021년 4월 29일
0

problem-solving

목록 보기
6/18

주어진 배열의 원소들을 d만큼 왼쪽으로 밀어서 회전시키는 문제다
방법 1. 각 원소를 d만큼 왼쪽으로 이동. 하지만 d가 10만 이하라 최악의 경우 10만 번 반복하니까 안좋다.
방법 2. 파이썬의 list slice를 사용해서 d기준으로 index d뒤에 있는 원소를 먼저 리스트에 넣고 d보다 앞에 있는 것들을 붙여주면 된다.
a[d:] + a[:d]

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the rotLeft function below.
def rotLeft(a, d):
    return a[d:] + 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()

0개의 댓글