본문 바로가기

Study/CS

[Algorithm] 10진법 N진법 변환 규칙 (feat. 프로그래머스 3진법 뒤집기)


1. 서론

10진법에서 N진법들로 바꾸는 법을 알아보자. 이를 c++로 표현도 해보자.


2. 본론

10진법에서 N진법으로 바꾸는 법 : 10진법 숫자 X가 있을때, X를 N으로 나눌 수 있을 때까지 나누고 나머지를 반대로 적어준다.

45(10)을 3진법으로 바꿀 때 :

 

N진법에서 10진법으로 바꾸는 법 : N진법 각 숫자에 뒤에서부터 N의 0승부터 곱해서 더해준다.

1200(3)을 10진법으로 바꿀 때 :



C++로 표현해보기

3진법 뒤집기 : https://school.programmers.co.kr/learn/courses/30/lessons/68935

주어진 10진수를 3진수로 변환한 뒤, 뒤집어서 다시 10진수로 변환하는 프로그램이다.

 

#include <string>
#include <cmath>

using namespace std;

int solution(int n) {
    int answer = 0;
    string s = "";
    
    while(n != 0){
        s += to_string(n%3);
        n /= 3;
    }
    
    for(int i = 0; i < s.size(); i++){
        answer += (s[s.size()-1-i]-48) * pow(3, i);
    }
    return answer;
}

 

3. 결론

진수 변환은 컴퓨터 공학도의 기본이 아닐까..ㅎ