2차원 배열

    [C++] 2차원 배열 행렬 바꾸기

    2차원 배열 행렬 바꾸기 2차원으로 선언된 배열을 2중 for문을 이용하여 행렬을 바꿀 수 있습니다. memmove( 배열 A 시작 주소, 배열 B 시작 주소, 크기 ) 배열간의 값 복사를 할 수 있는 함수로 B의 배열 값들을 A로 복사하는 기능을 제공합니다. 관련 글 [C++] 2차원 배열 90도 회전 지난번에 올렸던 2차원 배열 90도 회전에 이어서 이번에는 2차원 배열 행렬 바꾸기를 소개하겠습니다. 사실 행렬 바꾸기는 90도 회전에 비해서 상당히 간단합니다. 하지만 유용한 함수를 사용하지 않으면 2중 for문이 반복적으로 사용되기 때문에 지저분한 코딩이 될 수 있습니다. 그래서 90도 회전과 마찬가지로 memmove() 함수를 사용하면서 코드를 비교적 깔끔하게 작성할 수 있습니다. 행렬 바꾸기의 좌..

    [C++] 2차원 배열 90도 회전

    2차원 배열 90도 회전 2차원으로 선언된 배열을 2중 for문을 이용하여 90도 회전 시킬 수 있습니다. memmove( 배열 A 시작 주소, 배열 B 시작 주소, 크기 ) 배열간의 값 복사를 할 수 있는 함수로 B의 배열 값들을 A로 복사하는 기능을 제공합니다. 관련 글 [C++] 2차원 배열 행렬 바꾸기 알고리즘 문제를 풀다보면 2차원 배열을 계속해서 회전시켜야할 때가 있습니다. 90도, 180도, 270도 회전을 시킬 때 각각을 구현하여 문제를 해결할 수 있겠지만, 90도 회전하는 법을 알면 함수로 선언 후 반복적으로 이용하면 됩니다. 이렇게 하는 것이 코드도 깔끔해지고 시간도 절약할 수 있습니다. 2차원 배열을 90도 회전시키는 방법은 2중 for문을 이용해 행렬을 서로 바꿔주면 쉽게 해결할 수..

    [C++] 2차원 배열 특정 값 초기화

    2차원 배열 값 할당 2차원으로 선언된 배열을 fill 함수를 사용하여 특정 값을 할당시킬 수 있습니다. fill( 시작 주소, 끝 주소, 값 ) fill() 함수를 적용시켰을 때 배열의 값이 바뀌는 범위는 [시작주소, 끝 주소) 입니다. C++에서 배열 값을 특정 값으로 설정하는 함수들이 존재합니다. 대표적으로 memset(), fill() 함수가 있습니다. 하지만 memset()의 경우 초기화시킬 수 있는 값은 0과 -1로 제한이 됩니다. 알고리즘 문제를 풀 때 보통 0으로 초기화시키는 경우가 많아서 memset()을 흔히 사용하긴 하지만, 가끔씩 0과 -1이 아닌 값으로 초기화시키고 싶을 때가 있습니다. 이럴 때 memset() 함수를 사용하지 못하는 점이 아쉽긴 합니다. 하지만 memset()을 ..