coding_test/programmers
lv1 / 3진수 뒤집기 / C
CodeJin
2021. 9. 12. 10:38
https://programmers.co.kr/learn/courses/30/lessons/68935?language=c
코딩테스트 연습 - 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수
programmers.co.kr
자연수 n을 3진수로 변환한 후에 그 3진수를 뒤집고, 다시 10진수로 변환하는 문제.
처음부터 저장할때 뒤집어서 저장한 후에 10진수로 변환하면 된다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int n) {
int answer = 0;
int len = 0;
int arr[32];
while (n) {
arr[len++] = n % 3; // 나머지 저장후
n /= 3; // 3으로 나눈다
}
answer = arr[0];
for (int i = 1; i < len; i++) {
answer = (answer * 3) + arr[i];
}
return answer;
}