728x90
반응형
별찍기 #7
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
|
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include<stdbool.h>
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n - 1; i++) {
for (int j = i; j <= n-1; j++) {
printf(" ");
}
for (int j = 1; j <= i - 1; j++) {
printf("*");
}
printf("*");
for (int j = 1; j <= i - 1; j++) {
printf("*");
}
printf("\n");
}
for (int i = 1; i <= 2 * n - 1; i++) {
printf("*");
}
printf("\n");
for (int i = 1; i <= n - 1; i++) {
for (int j = 1; j <= i; j++) {
printf(" ");
}
for (int j = 1; j <= n - 1 - i; j++) {
printf("*");
}
printf("*");
for (int j = 1; j <= n - 1 - i; j++) {
printf("*");
}
printf("\n");
}
}
|
cs |
#별찍기 8
얘도 나비 뭔가 같음
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
|
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include<stdbool.h>
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n - 1; i++) {
for (int j = 1; j <= i; j++) {
printf("*");
}
for (int j = 1; j <= 2 * (n - i); j++) {
printf(" ");
}
for (int j = 1; j <= i; j++) {
printf("*");
}
printf("\n");
}
for (int i = 1; i <= 2 * n; i++) {
printf("*");
}
printf("\n");
for (int i = 1; i <= n - 1; i++) {
for (int j = n -i; j >= 1; j--) {
printf("*");
}
for (int j = 1; j <= 2 * i; j++) {
printf(" ");
}
for (int j = n - i; j >= 1; j--) {
printf("*");
}
printf("\n");
}
}
|
cs |
#별찍기 9
모래시계 입니당
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
|
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include<stdbool.h>
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n - 1; i++) {
for (int j = 1; j <= i - 1; j++) {
printf(" ");
}
for (int j = i; j <= n - 1; j++) {
printf("*");
}
printf("*");
for (int j = i; j <= n - 1; j++) {
printf("*");
}
printf("\n");
}
for (int i = 1; i <= n - 1; i++) {
printf(" ");
}
printf("*");
printf("\n");
for (int i = 1; i <= n - 1; i++) {
for (int j = 1; j <= n - 1 - i; j++) {
printf(" ");
}
for (int j = 1; j <= i; j++) {
printf("*");
}
printf("*");
for (int j = 1; j <= i; j++) {
printf("*");
}
printf("\n");
}
}
|
cs |
여기서부턴 나올지 의문이지만 정말 사악하게 낸다면 낼 수도 있는 분할정복!
아마 함수까지 공부를 할거니까 for문+ 재귀의 조합이라면 나올수 있겠다 싶지만.. 이러면 애들이 코딩을 포기하지 않을까.. 이미 나부터도.. 허허허
#별찍기 10번
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
|
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include<stdbool.h>
#include<math.h>
char arr[6562][6562];
void Print(int row, int col, int num) {
if (num == 1) {
arr[row][col] = '*';
return;
}
int n = num / 3;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) {
continue;
}
else {
Print(row + (i * n), col + (j * n), n);
}
}
}
}
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
arr[i][j] = ' ';
}
}
Print(0, 0, n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%c", arr[i][j]);
}
printf("\n");
}
}
|
cs |
#별찍기 11번
분할하고 -> 마지막에 별찍어주고
분할의 기준을 잡고 가는게 어렵다.
이번 별찍기는 맨 위 중앙에 있는 별이 기준이였다!
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
|
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
#include<stdbool.h>
char arr[3080][6200];
void Print(int row, int col, int num) {
if (num == 3) {
arr[row][col] = '*'; //중앙
arr[row + 1][col - 1] = arr[row + 1][col + 1] = '*';
arr[row + 2][col - 2] = arr[row + 2][col - 1] = arr[row + 2][col] =
arr[row + 2][col + 1] = arr[row + 2][col + 2] = '*';
return;
}
else {
int n = num / 2;
Print(row, col, n);//중앙 맨위
Print(row + n, col - n, n); //중앙 맨위 에서 좌측 아래
Print(row + n, col + n, n);//중앙 맨위 에서 우측 아래
}
}
int main() {
int n;
scanf("%d", &n);
//공백으로 채워주기
int m = 2 * n - 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
arr[i][j] = ' ';
}
}
Print(0, n-1, n); //가장 맨위 중앙에서 부터 시작
//근데 인덱스가 0부터 시작이기 때문에 n-1 0행 23열
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%c", arr[i][j]);
}
printf("\n");
}
}
|
cs |
728x90
반응형
'C > 중간고사 대비 (2022 1학기)' 카테고리의 다른 글
시험에 꼭 나오는 별찍기 문제 16번부터 23까지 (0) | 2022.04.18 |
---|---|
시험에 꼭 나오는 별찍기 문제 12번부터 15번까지 (0) | 2022.04.16 |
[C백준] 실버 5/ 1312번 소수 (0) | 2022.04.15 |
[C 백준] 1268번 임시 반장 정하기 (0) | 2022.04.14 |
[C 백준] 2442번 별찍기 -5 (0) | 2022.04.14 |
댓글