3진법 뒤집기

문제설명

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

 

제한사항

  • n은 1 이상 100,000,000 이하인 자연수입니다.

 

입출력예

n result
45 7
125 229

 

3진법이 뭔지 모르겠다. 3진법부터 공부하자.

 

삼진법 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

Python

Python - list reversed

 

Python List reverse()

Join our newsletter for the latest updates.

www.programiz.com

def solution(n):
    threeNum = ''
    while n > 0:
        threeNum += str(n%3)
        n = n//3
    answer = 0
    count = 1

    for eachChar in reversed(threeNum):
        answer += count * int(eachChar)
        count *= 3

    return answer

 

JavaScript

JavaScript - ParseInt

 

parseInt() - JavaScript | MDN

parseInt() 함수는 문자열 인자를 구문분석하여 특정 진수(수의 진법 체계에 기준이 되는 값)의 정수를 반환합니다. The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to

developer.mozilla.org

function solution(n) {
    let answer = n.toString(3).split("").reverse().join("");;
    return parseInt(answer, 3);
}

 

C++

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    string result = "";
    
    while (n > 0){
        int tempInt = (n % 3);
        char tempChar = static_cast<char>(tempInt);
        result += tempChar;
        n /= 3;
    }

    int count = 1;
    
    for(int i = result.size()-1; i >= 0; i--){
        answer += result[i] * count;
        count *= 3;
    } 
    
    return answer;
}
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기