3진법 뒤집기

2024. 12. 27. 10:51·공부/Code Cata

 

*string을 사용한 초기 작성 코드

더보기
#include <string>
#include <vector>
#include <cmath>

using namespace std;

string Trit(int n)
{
    string Result  = "";
    while(n != 0)
    {
        Result += to_string(n % 3);
        n /= 3;
    }
    return Result;
}

int solution(int n) {
    
    // 3진법으로 변환하며 string에 뒤에 자리부터 저장
    string R_Trit = Trit(n);
    int answer = 0;
    
    // 3진법으로 변환하고 뒤집힌 n을 다시 10진법으로 변환
    int i = R_Trit.length() - 1;
    for(int j = i; j >= 0; --j)
    {
        answer += (R_Trit[i - j] - '0') * pow(3, j);
    }
    
    return answer;
}

 

10진법을 3진법으로 변환하는데 이걸 앞뒤를 바꿔서 저장해야 된다는 생각에 string으로 풀었었다. (vector로 해도 동일한데.. 문제 풀 때는 string으로 풀면 더 효율적일 것 같다는 착각을;;)

 

다른 사람의 풀이를 보고, vector를 사용해서 더 코드가 심플하게 읽혀서 그 방식을 참고해서 다시 풀어보았다.

 

*vector만을 사용해 더 간결하게 수정

더보기
#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    
    vector<int> R_Trit;
    
    // vector에 리버스 된 3진법 저장
    while(n != 0)
    {
        R_Trit.push_back(n % 3);
        n /= 3;
    }
    
    // vector의 마지막 요소 값부터 3의 n제곱인 k만큼 곱해서 answer에 저장
    int k = 1;
    int answer = 0;
    while(!R_Trit.empty())
    {
        answer += k * R_Trit.back();
        R_Trit.pop_back();
        k *= 3;
    }
    
    return answer;
}

 

'공부 > Code Cata' 카테고리의 다른 글

재귀호출로 배열의 합 검사하기  (0) 2024.12.30
비트 AND연산 / std::toupper / std::tolower  (0) 2024.12.30
행렬의 덧셈(함수 내 배열 크기와 함께 초기화)  (0) 2024.12.26
Quick Sort  (0) 2024.12.23
std::sqrt  (0) 2024.12.22
'공부/Code Cata' 카테고리의 다른 글
  • 재귀호출로 배열의 합 검사하기
  • 비트 AND연산 / std::toupper / std::tolower
  • 행렬의 덧셈(함수 내 배열 크기와 함께 초기화)
  • Quick Sort
동그래님
동그래님
  • 동그래님
    개발자 동그래
    동그래님
  • 전체
    오늘
    어제
    • 분류 전체보기 (205) N
      • 공부 (51)
        • Code Cata (50)
      • 내배캠 (146) N
        • TIL (50)
        • C++ (37)
        • Unreal Engine (48)
        • GAS(Gameplay Ability System.. (11) N
      • Project (7)
        • Gunfire Paragon (5)
        • Arena Fighters (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    동그래님
    3진법 뒤집기
    상단으로

    티스토리툴바