코딩굼벵이
구르는 중
코딩굼벵이
  • 분류 전체보기 (115)
    • [C_C++]이론 공부 (17)
      • 알고리즘 (11)
      • 이론+STL (6)
    • [C_C++]코딩테스트 연습 (45)
      • [프로그래머스] level 1 (26)
      • [프로그래머스] level 2 (5)
      • [백준] 일반 문제 (12)
      • 기타 (2)
    • Solana (28)
      • Documentation (9)
      • Validator - 공부 (10)
      • Validator - 실행 (devnet & te.. (6)
      • 그 외 (3)
    • React (4)
    • Linux (2)
    • Javascript (2)
    • 블록체인 기반 핀테크 및 응용 SW 개발 (8)
      • React (1)
      • Javascript (3)
      • Solidity (3)
      • 프로젝트 (1)
    • 기타 (9)

블로그 메뉴

  • 🌟 깃허브
  • 🌿 Portfolio(2021)
  • 홈
  • 태그
  • 방명록

티스토리

최근 글

태그

  • Immer #ContextAPI
  • 밸리데이터
  • Hooks #React
  • 솔라나
  • 모니터링
  • grafana

인기 글

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
코딩굼벵이

구르는 중

[C++] 프로그래머스 - 3진법 뒤집기
[C_C++]코딩테스트 연습/[프로그래머스] level 1

[C++] 프로그래머스 - 3진법 뒤집기

2021. 7. 18. 22:14
728x90

 

내 풀이

  1. 모든 진수는 십진수를 해당 진법 수로 나눈 나머지를 일의자리부터 차례로 넣어 구할 수 있다. (주어진 십진수는 몫으로 갱신 필요)
  2. 나머지를 순서대로 push하면 일의자리부터 넣었기 때문에 역순으로 꺼내쓸 수 있다.
  3. v[i]와 곱해줘야 하는 거듭제곱의 증감이 달라 cnt를 따로 선언해줬는데, 이게 싫다면 reverse(v.begin(), v.end())를 해서 사용해도 된다.
#include <string>
#include <vector>
#include <cmath>

using namespace std;

int solution(int n) {
    int answer = 0;
    vector<int> v;

    while (n != 0) {
        v.push_back(n % 3);
        n /= 3;
    }
    int cnt = v.size()-1;
    for (int i = 0; i < v.size(); i++) {
        answer += v[i] * pow(3, cnt--);
    }
    return answer;
}

 

 

'[C_C++]코딩테스트 연습 > [프로그래머스] level 1' 카테고리의 다른 글

[C++] 프로그래머스 - 다트 게임  (0) 2021.07.21
[C++] 프로그래머스 - 비밀지도  (0) 2021.07.21
[C++] 프로그래머스 - 실패율 (pair, sort - bool)  (0) 2021.07.18
[C++] 프로그래머스 - 숫자 문자열과 영단어  (0) 2021.07.16
[C++] 프로그래머스 - 약수의 개수와 덧셈  (0) 2021.07.14
    '[C_C++]코딩테스트 연습/[프로그래머스] level 1' 카테고리의 다른 글
    • [C++] 프로그래머스 - 다트 게임
    • [C++] 프로그래머스 - 비밀지도
    • [C++] 프로그래머스 - 실패율 (pair, sort - bool)
    • [C++] 프로그래머스 - 숫자 문자열과 영단어
    코딩굼벵이
    코딩굼벵이
    구르는 재주 연마 중

    티스토리툴바