본문 바로가기

코딩 테스트/프로그래머스

[프로그래머스 Level 1, C] 수박수박수박수박수박수?

728x90
반응형

문제 : 수박수박수박수박수박수?


풀이 방법

stdbool.h 헤더파일로 c언어에서 bool을 true, false값으로 나타낼 수 있게 하였고 이것으로 flag변수를 만들어서 번갈아가며 "수"와 "박"을 넣을 수 있게 만들었다. strcat는 문자열 뒤에 문자열을 붙일 수 있게 하는 함수인데 char*에 붙일 수 있다.

 

이렇게만하고 말록 사이즈는 그냥 sizeof(char)로 했더니 덤프 오류가나서 어떻게 해야할까 싶었는데

char* answer = (char*)malloc(800000)으로 한 이유는 char의 사이즈가 8이고 n은 10,000이하의 자연수이라서 8 * 10000으로 생각했는데 잘 돌아가서 그냥 썼다


소스 코드

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

char* solution(int n) {
    // 리턴할 값은 메모리를 동적 할당해주세요.
    char* answer = (char*)malloc(80000);
    bool flag = false;
    for(int i=0; i<n; i++) {
        if(flag == false) {
            strcat(answer, "수");
            flag = true;
        } else if (flag == true) {
            strcat(answer, "박");
            flag = false;
        }
    }
    return answer;
}

 

728x90
반응형