인프런 커뮤니티 질문&답변

firdoo님의 프로필 이미지
firdoo

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

교안 p154 rotate질문입니다

작성

·

201

0

1, 2, 3, 4, 5, 6을

시계방향 : 6, 1, 2, 3, 4, 5

반시계방향 : 2, 3, 4, 5, 6, 1이 된다고 설명하셨는데

여기까지는 이해가 됩니다.

그런데 아래 예제코드에 보면 begin, end 의 결과가 2, 3, 4, 5, 6, 1이 되어있습니다.

그러면 begin, end가 반시계방향이라는 말인데

p156에 보면 반시계방향은 rbegin, rend을 사용해서 그 결과가 6, 1, 2, 3, 4, 5가 된다고 했습니다.

그리고 위에서 반시계방향은 2, 3, 4, 5, 6, 1이라고 했는데 어디서 뭐가 잘못되었는지 혼란스럽습니다...

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 firdoo님 ㅎㅎ

교안의 오타입니다... 불편을 드려 죄송합니다.

제대로 된 설명은 다음과 같습니다.

시계방향 구축

그렇다면 시계방향은 어떻게 해야할까요? 앞서 설명한 반시계방향과 같이 하되 begin(), end() 가 아니라 rbegin(), rend()를 사용하면 됩니다.  

#include <bits/stdc++.h>
using namespace std
int main(){
   
vector<int> v = {1, 2, 3, 4, 5, 6};
    rotate(v.rbegin(), v.rbegin() +
1, v.rend());
   
for(int i : v) cout << i << ' ';

/*
6 1 2 3 4 5
*/

 

해당 부분은 오늘내로 수정되어 올라갈 예정입니다.

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

 

firdoo님의 프로필 이미지
firdoo

작성한 질문수

질문하기