[알고리즘] 다이아몬드 만들기

2021. 10. 7. 18:54알고리즘/문제 풀이

728x90

2차원 배열에서 다이아몬드 형태로 데이터가 들어가는 것을 말합니다.

 

 

이러한 2차원 배열은 특징이 있는데요.

 

센터값을 기준으로 대칭이 일어나는 규칙을 갖고 있습니다.

 

 

형태는 다이아몬드뿐만 아니라 다양할 수 있는데요.

 

 

아래의 다이아몬드 형태의 예시에서는 행이 고정된 상태에서

 

열이 변화하면서 데이터가 들어가는 걸 알 수 있습니다.

 

행마다 데이터가 들어간 자리는 이와 같습니다.

 

 

보면 일정한 규칙이 있는데요.

 

행이 증가하면서 열의 시작값은 -1, 끝값은 +1씩 변화하다

 

가운데를 기준으로 반대부터는 시작값이 +1, 끝값은 -1씩 변화하는 걸 알 수 있습니다.

 

 


 

이를 활용한 알고리즘 문제의 순서도를 알아보겠습니다.

 

 

5행 5열의 2차원 배열에 다음과 같은 순서로 값이 저장될 때의 순서도입니다.

 

 

행에서의 반복 1, 5, 1을 거치면서

 

열에서의 반복을 진행합니다.

 

순서는

 

R = 1 , C = 3, 3, 1

R = 2 , C = 2, 4, 1

R = 3 , C = 1, 5, 1

R = 4 , C = 2, 4, 1

R = 5 , C = 3, 3, 1