-
JUNGOL 실력키우기 도형만들기1 - 문자사각형1 | 문자사각형2보관함 2020. 1. 19. 09:38
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다.
실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다.
이번 포스팅에서는 도형만들기1의 문자사각형 시리즈를 풀어보겠습니다.
1307 : 문자사각형1
이번 문제의 경우 2차원 배열을 사용하여 미리 데이터를 저장한 뒤 출력하면 쉽게 해결이 가능합니다.
입력의 최대 사이즈가 정해져 있기 때문에 미리 배열을 만들어 둘 수도 있지만 저는 동적 할당을 통해 2차원 배열을 만들어 진행해 봤습니다.
#include <iostream> using namespace std; int main(void) { int n; cin >> n; char** arr = new char*[n]; for (int i = 0; i < n; ++i) { arr[i] = new char[n]; } char c = 'A'; for (int i = n - 1; i >= 0; --i) { for (int j = n - 1; j >= 0; --j) { arr[j][i] = c++; if (c > 'Z') c = 'A'; } } for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cout << arr[i][j] << ' '; } cout << endl; } for (int i = 0; i < n; ++i) { delete[] arr[i]; } delete[] arr; }
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=2071&sca=20
1314 : 문자사각형2
#include <iostream> using namespace std; int main(void) { int n; cin >> n; char** arr = new char*[n]; for (int i = 0; i < n; ++i) { arr[i] = new char[n]; } char c = 'A'; for (int i = 0; i < n; ++i) { if (i % 2 == 0) { for (int j = 0; j < n; ++j) { arr[j][i] = c++; if (c > 'Z') c = 'A'; } } else { for (int j = n - 1; j >= 0; --j) { arr[j][i] = c++; if (c > 'Z') c = 'A'; } } } for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cout << arr[i][j] << ' '; } cout << endl; } for (int i = 0; i < n; ++i) { delete[] arr[i]; } delete[] arr; }
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=2072&sca=20