[[TableOfContents]] == Level1 == === ë‘ê°œ 뽑아서 ë”하기 === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> // numbers_lenì€ ë°°ì—´ numbersì˜ ê¸¸ì´ìž…니다. int* solution(int numbers[], size_t numbers_len) { // return ê°’ì€ malloc 등 ë™ì í• ë‹¹ì„ ì‚¬ìš©í•´ì£¼ì„¸ìš”. í• ë‹¹ 길ì´ëŠ” ìƒí™©ì— 맞게 변경해주세요. int TimesOfNumbers[201] = {0, }; //ë”í•œ ê²°ê³¼ê°’ì„ ë‚˜íƒ€ë‚´ëŠ” ë°°ì—´, ex)1+1=2 -> ë°°ì—´ì˜ 2번째 칸 ê°’ì„ 1 ì¦ê°€ int sizeOfArr=0; //ë™ì í• ë‹¹í• ë°°ì—´ì˜ í¬ê¸° for(int i=0; i<numbers_len; i++) { for(int j=i+1; j<numbers_len; j++) TimesOfNumbers[numbers[i]+numbers[j]]++; } for(int i=0; i<=200; i++) { if(TimesOfNumbers[i]) sizeOfArr++; } int* answer = (int*)malloc(sizeof(int)*sizeOfArr); //TimesOfNumbersì˜ n번째 ì¸ë±ìŠ¤ê°€ 1ì´ìƒì´ë‹¤ -> numbers를 ë”í–ˆì„ë•Œ ê·¸ ê°’ì´ 1회 ì´ìƒ 나왔다. answerì— ê°’ì„ ì¶”ê°€ int j=0; for(int i=0; i<=200; i++) { if(TimesOfNumbers[i]) answer[j++] = i; } return answer; } }}} === 2016ë…„ === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> char* solution(int a, int b) { int month[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; char dayOfWeek[7][4] = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"}; int numOfDays=0; // ë¦¬í„´í• ê°’ì€ ë©”ëª¨ë¦¬ë¥¼ ë™ì í• ë‹¹í•´ì£¼ì„¸ìš”. for(int i=0; i<a-1; i++) numOfDays+=month[i]; numOfDays+=(b-1); char* answer = (char*)malloc(sizeof(dayOfWeek[numOfDays%7])); //ë™ì í• ë‹¹ for(int i=0; i<sizeof(dayOfWeek[numOfDays%7]); i++) answer[i] = dayOfWeek[numOfDays%7][i]; return answer; } }}} === ë‘ ì •ìˆ˜ì˜ í•© === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> long long solution(int a, int b) { long long answer = 0; int min, max; if(a>b) { min = b; max = a; } else { min = a; max = b; } for(int i=min; i<=max; i++) answer+=i; return answer; } }}} === 문ìžì—´ 내림차순으로 배치하기 === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> // 파ë¼ë¯¸í„°ë¡œ 주어지는 문ìžì—´ì€ constë¡œ 주어집니다. ë³€ê²½í•˜ë ¤ë©´ 문ìžì—´ì„ 복사해서 사용하세요. char* solution(const char* s) { // return ê°’ì€ malloc 등 ë™ì í• ë‹¹ì„ ì‚¬ìš©í•´ì£¼ì„¸ìš”. í• ë‹¹ 길ì´ëŠ” ìƒí™©ì— 맞게 변경해주세요. int length = 0; //문ìžì—´ì˜ 길ì´ë¥¼ 알아냄 while(1) { if(s[length] == '\0') break; length++; } length++; char* answer = (char*)malloc(length); char temp; int max; //문ìžì—´ ë³µì œ for(int i=0; i<length; i++) answer[i] = s[i]; //ì •ë ¬ for(int i=0; i<length; i++) { max = i; for(int j=i+1; j<length; j++) { if(answer[max]<answer[j]) max = j; } temp = answer[i]; answer[i] = answer[max]; answer[max] = temp; } return answer; } }}} === 문ìžì—´ 다루기 기본 === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> // 파ë¼ë¯¸í„°ë¡œ 주어지는 문ìžì—´ì€ constë¡œ 주어집니다. ë³€ê²½í•˜ë ¤ë©´ 문ìžì—´ì„ 복사해서 사용하세요. bool solution(const char* s) { bool answer = true; int i=0; while(s[i] != '\0') { if(s[i]<'0' || s[i]>'9') { answer = false; break; } i++; } if(i != 4) answer = false; return answer; } }}} === ì•½ìˆ˜ì˜ í•© === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> int solution(int n) { int answer = 0; int i; for(i=1; i<=n; i++) { if(n%i==0) { answer += i; //약수를 하나씩 ë”함 } } return answer; } }}} === ì´ìƒí•œ ë¬¸ìž ë§Œë“¤ê¸° === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> #include <string.h> // 파ë¼ë¯¸í„°ë¡œ 주어지는 문ìžì—´ì€ constë¡œ 주어집니다. ë³€ê²½í•˜ë ¤ë©´ 문ìžì—´ì„ 복사해서 사용하세요. char* solution(const char* s) { // return ê°’ì€ malloc 등 ë™ì í• ë‹¹ì„ ì‚¬ìš©í•´ì£¼ì„¸ìš”. í• ë‹¹ 길ì´ëŠ” ìƒí™©ì— 맞게 변경해주세요. int length = strlen(s); char* answer = (char*)malloc(length); int index=0, i=0; while(s[i]!='\0') { if(s[i]==' ') { answer[i] = s[i]; index = 0; i++; continue; } if(index%2) { if(s[i]>='a') answer[i] = s[i]; else answer[i] = s[i] + 'a' - 'A'; } else { if(s[i]>='a') answer[i] = s[i] - 'a' + 'A'; else answer[i] = s[i]; } i++; index++; } answer[i] = '\0'; return answer; } }}} === ìžë¦¿ìˆ˜ ë”하기 === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> int solution(int n) { int answer = 0; while(n!=0) { answer += n%10; n/=10; } return answer; } }}} === ìžì—°ìˆ˜ 뒤집어 ë°°ì—´ë¡œ 만들기 === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> int* solution(long long n) { int temp = n; int count=0; while(temp!=0) { temp/=10; count++; } // ë¦¬í„´í• ê°’ì€ ë©”ëª¨ë¦¬ë¥¼ ë™ì í• ë‹¹í•´ì£¼ì„¸ìš”. int* answer = (int*)malloc(sizeof(int)*count); int i = 0; while(n!=0) { answer[i++] = n%10; n/=10; } return answer; } }}} === ì •ìˆ˜ ì œê³±ê·¼ íŒë³„ === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> long long solution(long long n) { long long answer = 0; while(1) { if(answer*answer<n) answer++; else if(answer*answer>n) { answer = -1; break; } else { answer++; answer = answer*answer; break; } } return answer; } }}} === ì§ìˆ˜ì™€ 홀수 === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> #include <string.h> char* solution(int num) { int letterNumOfReturn[2] = {5, 4}; char letterOfReturn[2][5] = {"Even", "Odd"}; num = num>0 ? num : num*-1; char* answer = (char*)malloc(letterNumOfReturn[num%2]); strcpy(answer, letterOfReturn[num%2]); return answer; } }}} === 하샤드 수 === {{{ #include <stdio.h> #include <stdbool.h> #include <stdlib.h> bool solution(int x) { bool answer = true; int sum=0; int temp; temp = x; while(temp!=0) { sum+=temp%10; //ê° ìžë¦¬ 수를 ë”함 temp/=10; } if(x%sum) //ì›ëž˜ 수가 ê° ìžë¦¬ 수를 ë”í•œ 값으로 나누어 떨어지지 않으면 false answer = false; return answer; } }}} === ì§ì‚¬ê°í˜• 별ì°ê¸° === {{{ #include <stdio.h> int main(void) { int a; int b; int i, j; scanf("%d %d", &a, &b); //printf("%d", a + b); for(i=0; i<b; i++) { for(j=0; j<a; j++) { printf("*"); } printf("\n"); } return 0; } }}}