-
JUNGOL 실력키우기 도형만들기2 - 홀수 마방진보관함 2020. 1. 24. 10:49
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다.
실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다.
이번 포스팅에서는 도형만들기2의 홀수 마방진을 풀어보겠습니다.
2074 : 홀수 마방진
이전의 문제를 보다 이 문제를 보니 굉장히 친절한 것 같습니다. x 혹은 y가 0보다 작아지면 n - 1로 이동하도록 하는 것만 주의하면 어려울 게 없는 문제입니다.
#include <iostream> using namespace std; int arr[101][101]; int main(void) { int n; cin >> n; int x{ n / 2 }, y{ 0 }; for (int i = 0, num = 1; i < n * n; ++i, ++num) { arr[y][x] = num; if (arr[y][x] % n == 0) { y++; } else { x--; y--; } if (x < 0) { x = n - 1; } if (y < 0) { y = n - 1; } } for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cout << arr[i][j] << ' '; } cout << endl; } }
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1338&sca=2020