게임 클라이언트 개발/알고리즘 문제

[프로그래머스 level 1] 수박수박수박수박수박수?(strcpy 활용하기)

주운녕 2020. 8. 5. 11:28

[출처 : 프로그래머스]

문제

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

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

입출력 예

 


풀이

malloc 함수로 동적할당을 받으면 초기화하지 않을 때까지 쓰레기 값이 들어가 있다. 따라서 반드시 NULL로 초기화를 해주기!!!!

strcpy(answer, "\0");

이거 안해서 계속 실패했다.

 

코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>

char* solution(int n) {
    char* s="수";
    char* p="박";
    // 리턴할 값은 메모리를 동적 할당해주세요.
    char* answer = (char*)malloc((sizeof(char)*n*3+1));
     strcpy(answer, "\0");
    for(int i=0; i<n; i++){
        if(i%2==0)  strcat(answer, s);
        else        strcat(answer, p);
    }
    return answer;
}

 


* 개인적인 학습 목적으로 작성한 글이기에 내용에 잘못된 정보가 있을 수 있습니다.

* 문제 출처 - https://programmers.co.kr/learn/courses/30/lessons/12922#