문제 설명

문제 해설
1. n을 3진법으로 만드는 과정에서 뒤집은 값을 v에 저장
n%3값을 저장
ex ) 45%3=0, 45/3=15
15%3=0, 15/3=5
5%3=2, 5/3=1
1%3=1, 1/3=0
3진수 n 1200
뒤집은 3진수 n(new_n)은 0021
배열에 저장 v.push_back(n%3);
while(n>0){
v.push_back(n%3);
n=n/3;
}
3. 뒤집은 new 10진수로 만들기
- pow(제곱할 수, 승수)를 아는지가 가장 중요한 포인터였던것 같다 ㅠㅅㅠ (난 몰랐음)
sqrt랑 세트로 알아두기!!!!
#include <string>
#include <cmath>
#include <iostream>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
int cnt=0;
vector<int> v;
while(n>0){
v.push_back(n%3);
n=n/3;
cnt++;
}
cout <<cnt<<'\n';
for(int i=0; i<cnt; i++){
answer=answer+v[cnt-1-i]*pow(3,i);
}
return answer;
}
'코딩테스트 대비' 카테고리의 다른 글
[프로그래머스 c++] 같은 숫자는 싫어 (1) | 2022.08.22 |
---|---|
[프로그래머스 c++] 구명보트 (0) | 2022.08.22 |
[c++] 소수점 자릿수 출력하기 / [Softeer] 성적평균 문제 풀이 (0) | 2022.06.10 |
평범한 배낭 문제 (0) | 2022.05.12 |
[프로그래머스 Lv.1] 약수의 개수와 덧셈 (0) | 2022.05.06 |