일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- codesingal
- flask
- collections.deque
- 파이썬 포렌식
- data_structure
- 피보나치 수
- til
- Counting cells in a blob
- matrixElementsSum
- Python
- codesignal
- 2015 봄학기 알고리즘
- Sequential Search
- All Longest Strings
- almostIncreasingSequence
- adjacentElementsProduct
- 파이썬머신러닝완벽가이드
- Numpy
- 백준
- Daily Commit
- C++
- 2750
- centuryFromYear
- markdown
- baekjun
- 수 정렬하기
- recursion
- cpp
- 10953
- shapeArea
Archives
- Today
- Total
Introfor
문자마름모 본문
마름모의 한 변의 길이 N을 입력받아 아래와 같이 문자마름모를 출력하는 프로그램을 작성하시오.
< 처리조건 >
(1) 첫 번째 행의 중앙부터 출발하여 시계 반대방향으로 'A'부터 차례대로 채워나간다. ('Z'다음에는 다시 'A'가 된다.)
(2) 바깥 부분이 다 채워지면 두 번째 행 중앙부터 다시 같은 작업을 반복한다.
(3) 같은 방법으로 마름모를 다 채워지도록 하여 출력한다.
<소스코드>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <stdio.h> int main() { int n = 0; // 입력받는 변수 int m = 0; // 배열에 대입할 변수 int tmp = 0; // n 값 저장. 반복출력문에 활용 int x, y; // 배열 위치 지정 int arr[100][100] = { 0 }; scanf("%d", &n); tmp = n; n--; // n-1번째부터 시작하기 위해서 x = 0, y = n; // 배열 초기 위치 지정. while (n > 0) { for (int i = 0; i < n; i++) { // 왼쪽 윗부분 arr[x++][y--] =65 + m++; } for (int i = 0; i < n; i++) { // 왼쪽 아랫부분 arr[x++][y++] =65 + m++; } for (int i = 0; i < n; i++) { // 오른쪽 아랫쪽 arr[x--][y++] =65 + m++; } for (int i = 0; i < n; i++) { // 오른쪽 arr[x--][y--] =65 + m++; } n--; x++; } arr[tmp - 1][tmp - 1] =65 + m; tmp = tmp * 2 - 1; for (int i = 0; i < tmp; i++) { for (int j = 0; j < tmp; j++) { if (arr[i][j] != 0) { printf(" %c",(char)arr[i][j]); } else { printf(" "); // 공백처리 } } printf("\n"); } return 0; } | cs |
Comments