728x90
▶문제 : 코딩 테스트 연습 - 자연수 뒤집어 배열로 만들기 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 자연수 뒤집어 배열로 만들기
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345
programmers.co.kr
▶코드 작성
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int *solution(long long n)
{
// 리턴할 값은 메모리를 동적 할당해주세요.
int *answer;
int len = 0;//자연수 n의 길이
long long temp = n;
while (temp != 0)
{
temp /= 10;//10씩 나누어 길이 구하기
len++;//자연수 n의 길이 구하기
}
answer = (int *)malloc(sizeof(int) * len);//길이 len만큼 동적할당
temp = n;//다시 n으로 대입
for (int i = 0; i < len; i++)
{
answer[i] = temp % 10;//나머지값이 일의자리 수
temp /= 10;//10으로 나누어 다음 자릿수로 넘어감
}
return answer;
}
▶해석
먼저 자연수 n의 자릿수를 알아내기 위해 변수 temp에 n을 대입하여 temp을 10씩 나누면서 len길이를 구하였다. len만큼 동적 할당을 하여 temp을 10으로 나눈 나머지가 일의 자리이므로 answer에 대입하고 temp을 10으로 나누면서 다음 자릿수로 넘어가고를 반복하여 뒤집은 answer동적 할당 배열이 구해진다.
728x90
'프로그래머스 > C' 카테고리의 다른 글
프로그래머스 Level 1 : 짝수와 홀수 C언어 (0) | 2021.12.20 |
---|---|
프로그래머스 Level 1 : 정수 제곱근 판별 C언어 (0) | 2021.12.19 |
프로그래머스 Level 1 : 자릿수 더하기 C언어 (0) | 2021.12.18 |
프로그래머스 Level 1 : 이상한 문자 만들기 C언어 (0) | 2021.12.18 |
프로그래머스 Level 1 : 약수의 합 C언어 (0) | 2021.12.18 |
댓글