ì•„ì´ë””어랄까. 첫번째와 ë‘번째는 너무 쉽다. 버í¼ë§Œ 만들면 ê±°ê¸°ì— ë³„í‘œë§Œ 채우면 ë˜ë‹ˆê¹Œ. ì˜¤ížˆë ¤ makeBuffer 함수가 ì‹ ê²½ì¨ì•¼ í• ë¶€ë¶„. C ì—서는 문ìžì—´ì˜ ëì„ ì‹ ê²½ì¨ì¤˜ì•¼ 하니까. 세번째가 ê²°êµ ë¬¸ì œì¸ë°, 무슨 수열 ìƒê°í• ê±° ì—†ì´ ê·¸ì € ì§ê´€ì 으로 recursiveë¡œ 필요한 버í¼ì˜ ì–‘ì„ êµ¬í˜„. ì´ê±´ 별표 ì°ëŠ” 시작 위치 ì •í• ë•Œë„ ì“¸ìˆ˜ 있ë”구만. ê·¸ì € ì† ê°€ëŠ”ëŒ€ë¡œ í”„ë¡œê·¸ëž˜ë° í–ˆì„ ë¿. 다만 ê±±ì •ë˜ëŠ”게 있었다면, visual studio ë„ìš°ê¸°ë„ ê·€ì°®ì•„ì„œ.. ê·¸ë¦¬ê³ ìš”ì¦˜ì—는 ì´ëŸ°ê±° ì§œëŠ”ë° ë§ˆì†Œ 비주얼 스튜디오 형님까지 ëŒì–´ë“¤ì´ëŠ”ê±´ 좀 미안하게 ëŠê»´ì ¸ì„œ 그냥 zp server ì—ì„œ vi ë¡œ ë‘들겼는ë°.. 나 gdb 쓸 줄 모르니까. malloc ì“°ë©´ì„œ 약간 ë‘ë ¤ì› ì§€. ííí. ë‹¤í–‰ì´ const int 를 case ì—ì„œ ë°›ì„ ìˆ˜ 없는거 (ì´ëŸ° 줄 오늘 알았다) ë§ê³ 는 별달리 ì—러 ì—†ì´ í•œë°©ì— ë˜ì£¼ì…”ì„œ ì¦ê±°ì› 지. ì‹œí—˜ë„ ë났으니 ì´ëŸ°ê±°ë‚˜ 하면서 놀면 ìž¬ë°Œê² ë‹¤. 다른 ë¬¸ì œ 없나... {{{ #include <stdio.h> #include <stdlib.h> #define FORWARD 1 #define BACKWARD 2 #define BIDIR 3 void getUserInput(int * sel, int * num) { scanf("%d %d", sel, num); } char * makeBuffer(int num) { char * ret = (char *)malloc(sizeof(char) * num + 1); ret[num--] = '\0'; while (num >= 0) ret[num--] = ' '; return ret; } void forwardTriangle(int num, char * buffer) { int i; for (i = 0; i < num; i++) { buffer[i] = '*'; printf("%s\n", buffer); } } void backwardTriangle(int num, char * buffer) { int i; for (i = num - 1; i >= 0; i--) { buffer[i] = '*'; printf("%s\n", buffer); } } int calcBidirTriangleSize(int num) { if (num == 1) return 1; return calcBidirTriangleSize(num - 1) + 2; } void bidirTriangle(int num, char * buffer) { int i, center; center = calcBidirTriangleSize(num) / 2; for (i = 0; i < num; i++) { buffer[center + i] = '*'; buffer[center - i] = '*'; printf("%s\n", buffer); } } void produceTriangle(int sel, int num) { char * buffer; switch (sel) { case FORWARD: buffer = makeBuffer(num); forwardTriangle(num, buffer); break; case BACKWARD: buffer = makeBuffer(num); backwardTriangle(num, buffer); break; case BIDIR: buffer = makeBuffer( calcBidirTriangleSize(num) ); bidirTriangle(num, buffer); } free(buffer); } int main(void) { int sel, num; getUserInput(&sel, &num); produceTriangle(sel, num); return 0; } }}} ì•„ 요즘 왜ì´ë¦¬ ì‹¬ì‹¬í• ê¹Œ.. [í† ì´] [í† ì´/삼ê°í˜•ë§Œë“¤ê¸°]