티스토리 뷰
문제 1 |
프로그래밍을 좋아하는 효민이는 이집트에 가서 피라미드를 보았다. 그 순간 선생님이 알려 준 피라미드 별찍기가 생각났다. 효민이는 노트북을 키고 피라미드 예제를 코딩하기 시작하는데, 선생님이 알려준 피라미드는 너무 쉽다고 투정을 부린다.
그래서 효민이는 피라미드에 원하는 문자열을 삽입하여 피라미드를 멋있게 꾸미려고 한다.
|
입력 |
첫 번째 줄에는 홀수인 문자의 개수를 n 받는다. 두 번재 줄에는 문자의 개수가 홀수인 n만큼의 문자열을 입력받는다.
|
출력 |
출력은 문자열의 중간에 있는 문자(mid)가 피라미드의 꼭대기에 오고 mid-1, mid+1의 문자가 피라미드의 다음층으로 내려온다. 또 mid-2, mid+2의 문자는 다음층으로 내려온다.
따라서 mid-k, mid+k의 문자는 k층 만큼 내려온다. |
입/ 출력 예시
입력 |
27⏎ abcdefghijklmnopqrstuvwxyz@⏎ |
출력 |
코드
#include <stdio.h>
/*
made by hyomin
*/
int main() {
char str[10000];
int n;
int i = 0;
int j = 0;
int mid;
int null = 0;
int max = 1;
int k = 0;
scanf("%d", &n);
scanf("%s",str);
mid = n / 2;
for (i = 0; i<mid+1; i++) {
for (j = 0; j<mid - i; j++) {
printf(" ");
}
if (i == 0) {
printf("%c", str[mid + i]);
}
else {
printf("%c", str[mid - k]);
for (null = 0; null<max; null++) {
printf("*");
}
printf("%c", str[mid + k]);
max++;
max++;
}
printf("\n");
k++;
}
return 0;
}
출제의도
- 일반적인 for문을 이용한 별찍기는 프로그래밍에서 제일 중요한 부분이며 반복문이 없이는 어떠한 프로그래밍도 할 수 없다. 나는 학교에서 배운 내용보다 좀 더 수준이 높은 예제를 만들어보고 싶었다.
- 이 문제는 입력받은 str을 피라미드 위에 표시해야하므로 기존 피라미드 예제보다 훨씬 어려운 난이도를 제공하고 반복문의 사용에 대해 익숙해질 수 있는 문제이다.
'programming > c, c++' 카테고리의 다른 글
[C언어]프로그래밍 문제만들기 2 - 서브넷 마스크 계산기 (0) | 2017.12.16 |
---|---|
[C언어]컴파일러의 실행 단계 (0) | 2017.12.16 |
[C언어]고급언어와 저급언어(기계어, 어셈블리어) (0) | 2017.12.16 |
[C언어]전처리기의 특징, 헤더 파일 (0) | 2017.12.16 |
[C언어 프로젝트]효민타자연습기 (0) | 2017.12.15 |
- heap
- tcache
- srop
- SQLi
- codegate
- glibc
- HackCTF
- hacking
- exit
- fastbin
- pwable
- shellcoding
- stack reusing
- TLS
- fsop
- ebp change
- FSB
- fastbindup
- rt_sigreturn
- overflow
- 해킹
- 본선가고싶다
- pwnable.tw
- oob
- pwnable
- Total
- Today
- Yesterday