본문 바로가기
코딩테스트

C언어 ] 프로그래머스 Lv. 1 - 자연수 뒤집어 배열로 만들기

by eteo 2022. 5. 17.

문제 설명

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

 

제한 조건
  • n은 10,000,000,000이하인 자연수입니다.

 

입출력 예
n return
12345 [5,4,3,2,1]

 

나의 풀이

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

int* solution(long long n) {
    // 리턴할 값은 메모리를 동적 할당해주세요.
    long long copyn=n;
    int count=0;
    while(copyn>0){
        copyn=copyn/10;
        count++;
    }
    int div=10;
    int* answer = (int*)malloc(sizeof(int)*count);    
    for(int i=0;i<count;i++){
        answer[i]=n%div;
        n/=10;
    }
    return answer;
}

 

 

다른 사람의 풀이

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

int* solution(long long n) {
    int* answer = (int*)malloc(sizeof(int) * 12);

    int temp = 0;
    while(n > 0)
    {
        answer[temp++] = n % 10;
        n /= 10;
    }

    return answer;
}

sizeof(int)*11해도 되지않나..