상세 컨텐츠

본문 제목

[HackerRank] Left Rotation (Python, C++)

PROGRAMMING/Algorithm

by koharin 2021. 1. 12. 23:31

본문

728x90
반응형

Python

def rotateLeft(d, arr):
    for i in range(d):
        j=arr.pop(0)
        arr.append(j)
    return arr
def rotateLeft(d, arr):
	return arr[d:] + arr[0:d]
  • 처음에는 arr 첫번째 원소를 pop해서 빼면서 j에 저장하고, 그 저장한 수를 append로 맨 뒤에 추가해서 d만큼 반복한 후, arr를 리턴했다.
  • 하지만 문제에서는 print하기만 하면 되는거라, arr를 변형하지 않아도 arr[d:] + arr[0:d]로 이어붙인 것을 반환하면 똑같은 결과이다.

 

C++

vector<int> rotateLeft(int d, vector<int> arr) {
    
	for(int i=0; i<d; i++){
        int n = arr.front();
        arr.erase(arr.begin());
        arr.push_back(n);
    }
    return arr;
}
  • front()로 arr의 첫 번째 원소를 가져와서 변수에 넣은 후, arr.erase(arr.begin())으로 첫 번째 원소를 제거한다.
  • 그 후 push_back으로 첫 번째 원소를 맨 뒤에 추가한다.
  • d만큼 반복한 후 arr를 반환한다.

 

 

 

 

 

728x90
반응형

관련글 더보기