728x90
반응형
3진법, 당황했다.
우선 내가 짠 코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int n) {
int answer = 0;
int square = 0;
int buff[5000] = {0, };
while(n > 0) {
buff[square++] = n%3;
n/=3;
}
for(int i = 0; i < square; i++) {
answer = answer + (buff[i] * (pow(3, (square-i-1))));
}
return answer;
}
정답은 통과했지만, 맘에들지 않는다.
아래는, 감탄사가 나오는 코드 역시 세상에 천재는 많다. 굿굿
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int n) {
int temp = 0;
int cn = n;
while (cn != 0)
{
int remain = cn % 3;
temp *= 3;
temp += remain;
cn /= 3;
}
return temp;
}
다른 진법연산에도 활용할 수 있을것 같다.
기억해둬야지 .
- 끝 -
728x90
반응형
'Programming language > 코딩테스트' 카테고리의 다른 글
코딩테스트-정수를 나선형으로 배치하기 (0) | 2024.06.22 |
---|---|
코딩테스트-숫자 문자열과 영단어 (0) | 2022.10.26 |
코딩테스트-피보나치 수 (0) | 2022.10.12 |
코딩테스트 - 약수의 개수와 덧샘, C언어 (0) | 2022.10.02 |
코딩테스트 - 문자열 정렬하기, C 언어, 버블정렬 활용 (1) | 2022.10.01 |