728x90
반응형
문제
코드
#include <iostream>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
vector<int> three;
int temp = n;
while (temp)
{
three.emplace_back(temp % 3);
temp /= 3;
}
reverse(three.begin(), three.end());
int m = 1;
for (int i : three)
{
answer += (i * m);
m *= 3;
}
return answer;
}
문제 해설
- 3진법을 저장할 vector<int> 를 만들어준다.
- n이 0이 될 때까지 3으로 나눈 나머지를 3진법 vecotr 에 넣어주고 3으로 나눠준다.
- reverse 함수를 통해서 배열을 뒤집어준다.
- 뒤집은 배열을 foreach 를 이용해서 10진법으로 만들어준다.
728x90
반응형
'코딩테스트 > 프로그래머스(C++)_Level.1' 카테고리의 다른 글
[프로그래머스/C++] Lv.1 이상한 문자 만들기 (0) | 2023.11.28 |
---|---|
[프로그래머스/C++] Lv.1 예산 (0) | 2023.11.28 |
[프로그래머스/C++] Lv.1 같은 숫자는 싫어 (0) | 2023.11.28 |
[프로그래머스/C++] Lv.1 최대공약수와 최소공배수 (0) | 2023.11.28 |
[프로그래머스/C++] Lv.1 문자열 내림차순으로 배치하기 (0) | 2023.11.27 |