Algorithm/Programmers

[Level 1][C] 수박수박수박수박수박수?

현식 :) 2020. 3. 26. 20:20
  • 문제

    길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다.

  • 제한 조건

    • n은 길이 10,000 이하인 자연수입니다.
  • Example

    Input 1 : 3
    Input 2 : 4
    Output 1 : "수박수"
    Output 2 : "수박수박"
  • Code

    #include <stdio.h>
    #include <stdbool.h>
    #include <stdlib.h>
    
    char* solution(int n) {
    
        char* s0 = "박";                                // 문자형 포인터 s0 선언 및 "박" 대입
        char* s1 = "수";                                // 문자형 포인터 s1 선언 및 "수" 대입
        int len = strlen(s0);                           // 정수형 변수 len 선언 및 s0의 길이 대입
    
        char* answer = (char*)malloc(sizeof(len)*n);    // answer 에 한글 한 문자 * n의 수만큼 메모리 동적 할당
    
        for(int i=0;i<n;i++) {                          // n만큼 반복
            if(i%2==0) {                                // i가 짝수면
                strcpy(answer+(i*len),s1);              // answer + i*len 의 포인터 주소에 s1 카피 
            }
            else {                                      // i가 홀수면
                strcpy(answer+(i*len),s0);              // answer + i*len 의 포인터 주소에 s0 카피
            }
        }
        return answer;                                  // answer 반환
    }