ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로그래머스 3진법 뒤집기 C++
    프로그래머스(Programmers) 2022. 1. 13. 16:41
    반응형

    문제설명

    입출력 예 설명

    입출력 예 #1

    • 답을 도출하는 과정은 다음과 같습니다.

    n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현

    45 1200 0021 7
    • 따라서 7을 return 해야 합니다.

    입출력 예 #2

    • 답을 도출하는 과정은 다음과 같습니다.

    n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현

    125 11122 22111 229
    • 따라서 229를 return 해야 합니다.
    #include <string>
    #include <vector>
    
    using namespace std;
    
    int solution(int n) {
        int answer = 0;
        vector<int> threeNo; //3진법표현
        int tenNo = n;
        while(tenNo)
        {
            threeNo.push_back(tenNo%3);
            tenNo/=3;
        }
        int mul=1;
        for(int i=threeNo.size()-1; i>=0; i--)
        {
            answer += threeNo[i]*mul;
            mul*=3;
        }
        return answer;
    }

     

    => 3진법으로 변환하는 방법은 3으로 나누면서 계속 threeNo에 push하면 됩니다. 

    => 이후 3진법을 거꾸로 하라고 하였지만 굳이 그럴 필요는 없습니다. 

    => 만들어진 3진법을 뒤에서부터 거꾸로 3진법을 10진법으로 바꾸는 계산을 해주면 됩니다. 

     

    반응형

    '프로그래머스(Programmers)' 카테고리의 다른 글

    신고 결과 받기 C++  (0) 2022.01.17
    프로그래머스 튜플 C++  (0) 2022.01.14
    프로그래머스 H-Index C++  (0) 2022.01.12
    괄호변환 C++  (0) 2022.01.11
    약수의 개수와 덧셈  (0) 2022.01.11

    댓글

Designed by Who.