[ Codility ] - Lesson2 CyclicRotation(C++)

DPOS·2021년 6월 19일
2

Codility

목록 보기
2/11
post-thumbnail

문제조건

  • 값이 정의된 벡터 A
  • 몇 번 이동할지 정하는 변수 K
  • A에 값들을 K번 만큼 오른쪽으로 이동(shift)

문제풀이

vector<int> solution(vector<int> &A, int K) {
	
    if(A.size() == 0)			// A가 비었을 때를 대비한 예외처리
    	return A;
    
    for(int i =  0; i < K; i++)
    {
        A.insert(A.begin(), A.back());	// 벡터 끝의 값을 제일 앞에 할당
        A.pop_back();			// 마지막 값을 벡터에서 제외
    }

    return A;
}

코드설명

  코드는 간단하게 그냥 뒤에서 뺀 값을 앞에 넣어주기만 합니다. 그리고 벡터에 값이 없을 때를 위한 예외처리를 추가했습니다.(없으면 채점 시 감점됩니다.)

결과사진

감점요소

  보면 알겠지만 배열이 비어있는 상태에 대한 예외처리를 안 해줘서 그렇습니다. 채점 후 아래쪽으로 내려보면 채점 기준이 나와 있으니 점수가 깎였다면 확인 후 코드를 수정하면 될 것 같습니다.

profile
본인 전공빼고 다 하는 사람

0개의 댓글