C++ - 1차원 배열에서의 시계방향, 반시계 방향 (feat: rotate)

2020. 5. 1. 00:01·Language/C++

여러 알고리즘 문제를 풀때 1차원 배열에서 시계 방향, 반시계 방향으로 회전을 시켜야 하는 경우가 존재합니다. 이때 정말 쉽고 편리하게 사용할 수 있는 방법을 알려드리도록 하겠습니다.

 

먼저 Algorithm 헤더의 rotate에 대해 잘 모르시다면 아래 링크를 통해 rotate에 대해 보고오시면 쉽게 이해할수 있습니다. 

 

참고: 2020/04/13 - [Language/C++] - C++ - Algorithm 헤더 파일 reverse(), rotate(), random_shuffle()

관련 문제 : 2020/04/30 - [Algorithms/BOJ] - 백준 14891 - 톱니바퀴

 

시계를 예로 들어보도록 하겠습니다~. 1시부터 12까지 숫자가 존재한다고 가정하겠습니다. 

#include <iostream>
#inlcude <algorithm>

using namespace std;

int clock[12]={1,2,3,4,5,6,7,8,9,10,11,12};
int main(){
	//반시계방향
	rotate(clock, clock+1, clock+12);
	//시계방향
	rotate(clock, clock+11, clock+12);
	return 0;
}

위의 코드를 공식으로 정리하면, 반시계는 어레이가 앞으로 한칸씩 가기때문에 (clock+1)을 합니다. 시계방향은 이와 다르게 (clock + (전체 크기-1))만큼 진행합니다. 

 

반시계 방향으로 n 만큼 이동 : rotate(clock, clock + n, clock+ (arr.size()) )

시계 방향으로 n 만큼 이동 : rotate(clock, clock+ (arr.size() - n), clock + (arr.size()) )

 

저작자표시 (새창열림)

'Language > C++' 카테고리의 다른 글

C++ - 조합 및 순열  (0) 2020.06.23
C++ - String 클래스, 문자열 총정리  (0) 2020.06.19
C++ - n x n 2차원 배열에 대한 조작 (90도 회전 / 점대칭 / 선대칭)  (1) 2020.04.21
C++ - Algorithm 헤더 파일 binary_search(), lower_bound(), upper_bound()  (0) 2020.04.13
C++ - Algorithm 헤더 파일 replace(), replace_if(), remove(), remove_if()  (0) 2020.04.13
'Language/C++' 카테고리의 다른 글
  • C++ - 조합 및 순열
  • C++ - String 클래스, 문자열 총정리
  • C++ - n x n 2차원 배열에 대한 조작 (90도 회전 / 점대칭 / 선대칭)
  • C++ - Algorithm 헤더 파일 binary_search(), lower_bound(), upper_bound()
dev.wookii
dev.wookii
Effort Maketh Happiness
  • dev.wookii
    습관처럼
    dev.wookii
  • 전체
    오늘
    어제
    • 분류 전체보기 (295)
      • Language (35)
        • python (13)
        • C++ (22)
      • Kaggle (4)
      • Algorithms (112)
        • BOJ (58)
        • programmers (43)
        • SWExpertAcademy (2)
      • Certification (38)
        • Adsp (0)
        • Sqld (28)
        • 정처기 (9)
        • 빅데이터 분석기사 (0)
      • Data Analysis & ML (6)
      • 금융 & 디지털 (65)
      • CS (32)
        • DB (2)
        • SE (3)
        • Web&JSP (1)
        • Network (11)
        • OS (2)
        • Linux&Unix (6)
        • Server (1)
        • UX,UI (1)
        • 보안 (5)
      • 기타 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    programmers
    2020 KAKAO
    시뮬레이션
    funny algorithms
    Ebay korea #coding test
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev.wookii
C++ - 1차원 배열에서의 시계방향, 반시계 방향 (feat: rotate)
상단으로

티스토리툴바