1. 대각선
#include "stdio.h"
int main() {
int A[5][5]; // 행 열이 각각 5인 배열 A 선언
int num = 0; // 배열 A에 값을 넣어줄 변수
for (int i = 0; i < 5; i++) { // 삼각형 #1
for (int j = 0; j <= i; j++) {
num++; // num + 1
A[i - j][j] = num; // 배열 원소에 num 할당
}
}
for (int i = 1; i < 5; i++) { // 삼각형 #2
for (int j = 0; j < 5 - i; j++) {
num++; // num + 1
A[4 - j][j + i] = num; // 배열 원소에 num 할당
}
}
for (int i = 0; i < 5; i++) { // 배열 출력
for (int j = 0; j < 5; j++) {
printf("%2d ", A[i][j]);
}
printf("\n");
}
}
2. 지그재그
#include "stdio.h"
int main() {
int A[5][5]; // 행 열이 각각 5인 배열 A 선언
int num = 0; // 배열 A에 값을 넣어줄 변수
for (int i = 0; i < 5; i++) // 삼각형 #1
{
for (int j = 0; j <= i; j++)
{
num++; // num + 1
if (i % 2 == 0) // i가 짝수라면
A[j][i - j] = num; // A(j, i - j)에 num 할당
else // i가 홀수라면
A[i - j][j] = num; // A(1 - j, j)에 num 할당
}
}
for (int i = 1; i < 5; i++) // 삼각형 #2
{
for (int j = 0; j < 5 - i; j++)
{
num++; // num + 1
if (i % 2 == 0) // i가 짝수라면
A[j + i][4 - j] = num; // A(j + i, 4 - j)에 num 할당
else // i가 홀수라면
A[4 - j][j + i] = num; // A(1 - j, j)에 num 할당
}
}
for (int i = 0; i < 5; i++) // 배열 출력
{
for (int j = 0; j < 5; j++)
{
printf("%2d ", A[i][j]);
}
printf("\n");
}
}
3. 역 달팽이
#include "stdio.h"
int main() {
int A[5][5]; // 행 열이 각각 5인 배열 A 선언
int num = 25; // 배열 A에 값을 넣어줄 변수 (역순으로 저장할 것이라 25로 초기화)
int count = 5; // 배열에 숫자를 배정하는 수행 횟수
int i = -1, j = 0, S = 1; // 배열의 행, 열, 증감을 표현한 변수
while (1) {
for (int P = 0; P < count; P++) { // count만큼 반복한다
i += S; // 행 번호 i에 S만큼 추가 (1 or -1)
A[i][j] = num; // A(i, j)에 num 할당
num--; // num - 1
}
count--; // count - 1
if (count <= 0) // count가 0이 되면
break; // 반복문을 탈출한다
for (int P = 0; P < count; P++) { // count만큼 반복한다
j += S; // 열 번호 j에 S만큼 추가 (1 or -1)
A[i][j] = num; // A(i, j)에 num 할당
num--; // num - 1
}
S *= (-1); // 증감 역할 반전
}
for (int i = 0; i < 5; i++) // 배열 출력
{
for (int j = 0; j < 5; j++)
{
printf("%2d ", A[i][j]);
}
printf("\n");
}
}
'Algorithm' 카테고리의 다른 글
[Programmers] Lv. 1 최대공약수와 최소공배수 (0) | 2022.09.10 |
---|---|
[Programmers] Lv. 1 짝수와 홀수 (0) | 2022.09.10 |
[Algorithm] 진수 변환 (0) | 2020.11.18 |
[백준 BOJ] 1929번 소수 구하기 (0) | 2020.11.04 |
[백준 BOJ] 1978번 소수 찾기 (0) | 2020.11.04 |
댓글