728x90
문제 설명
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예
입출력 예 설명
코드
#include <string>
#include <vector>
#include <math.h>
using namespace std;
int solution(int n) {
int answer = 0;
vector <int> v;
while(n>0){
v.push_back(n%3);
n /= 3;
}
int temp = v.size();
for(int i=0; i<temp; i++){
answer += (v.back() * pow(3,i));
v.pop_back();
}
return answer;
}
알게된 것
- C++은 제곱(^) 연산자가 없다. #include <math.h>를 선언하고 pow(i, n)을 써야함
- 처음에 for문에서 i<v.size()를 넣었는데, 안에서 v.pop_back()을 했다.
이렇게 하면, size가 작아져버린다..!!
728x90
'고흐의 연구실 > 자료구조와 알고리즘' 카테고리의 다른 글
[프로그래머스] 주식가격(C++) (0) | 2020.10.23 |
---|---|
[자료구조] 정리하기(작성중) (0) | 2020.10.21 |
[자료구조/C언어] 연결리스트 / 링크드 리스트 / linked list (0) | 2020.09.30 |
[알고리즘] 거품 정렬 (bubble sort) (0) | 2020.09.01 |
[프로그래머스] 짝수와 홀수 (C언어, python) (0) | 2020.09.01 |