1331: 문자마름모
시간제한: 1 Sec 메모리제한: 64 MB제출: 407 해결: 96
마름모의 한 변의 길이 N을 입력받아 아래와 같이 문자마름모를 출력하는 프로그램을 작성하시오.
< 처리조건 >
(1) 첫 번째 행의 중앙부터 출발하여 시계 반대방향으로 'A'부터 차례대로 채워나간다. ('Z'다음에는
다시 'A'가 된다.)
(2) 바깥 부분이 다 채워지면 두 번째 행 중앙부터 다시 같은 작업을 반복한다.
(3) 같은 방법으로
마름모를 다 채워지도록 하여 출력한다.

마름모의 한변의 길이 N(N의 범위는 100 이하의 양의 정수)을 입력받는다.
주어진 형태대로 한변의 길이가 N인 문자마름모를 출력한다. 문자 사이는 한 개의 공백으로 구분한다.
|
| ||
char[][] arr = new char[count*2-1][count*2-1]; //값을 담을 배열.. 마름모로 담다 보니 크기가 더 커야 합니다.
int m = count-1; int x=0,y=count-1; char num = 'A'; while(m>0){ for(int i = 0; i < m; i++){ //왼쪽아래 arr[x++][y--]=num++; } for(int i = 0; i < m; i++){ //오른쪽아래 arr[x++][y++]=num++; } for(int i = 0; i < m; i++){ //오른쪽위 arr[x--][y++]=num++; } for(int i = 0; i < m; i++){ //왼쪽위 arr[x--][y--]=num++; } m--; x++; } arr[count-1][count-1] = num; //마지막 Y를 담기위한 부분.. |
이렇게 작성하면, 2차원 char배열에 마름모로 문자를 채울 수 있습니다.
제공하는 소스에는 앞에 예제인 사각형 달팽이를 작성하는
메소드도 포함되어 있습니다.
'프로그래밍 > 알고리즘' 카테고리의 다른 글
| 1495: 대각선 지그재그 (0) | 2015.04.21 |
|---|---|
| 1997: 떡 먹는 호랑이 (0) | 2015.04.21 |
| 2074: 마방진 (0) | 2015.04.21 |
| 1014: 돌다리 건너기 (0) | 2015.04.21 |
| 1707: 달팽이사각형 (0) | 2015.04.21 |




