-
프로그래머스 3진법 뒤집기 C++프로그래머스(Programmers) 2022. 1. 13. 16:41반응형
입출력 예 설명
입출력 예 #1
- 답을 도출하는 과정은 다음과 같습니다.
n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현
45 1200 0021 7 - 따라서 7을 return 해야 합니다.
입출력 예 #2
- 답을 도출하는 과정은 다음과 같습니다.
n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현
125 11122 22111 229 - 따라서 229를 return 해야 합니다.
#include <string> #include <vector> using namespace std; int solution(int n) { int answer = 0; vector<int> threeNo; //3진법표현 int tenNo = n; while(tenNo) { threeNo.push_back(tenNo%3); tenNo/=3; } int mul=1; for(int i=threeNo.size()-1; i>=0; i--) { answer += threeNo[i]*mul; mul*=3; } return answer; }
=> 3진법으로 변환하는 방법은 3으로 나누면서 계속 threeNo에 push하면 됩니다.
=> 이후 3진법을 거꾸로 하라고 하였지만 굳이 그럴 필요는 없습니다.
=> 만들어진 3진법을 뒤에서부터 거꾸로 3진법을 10진법으로 바꾸는 계산을 해주면 됩니다.
반응형'프로그래머스(Programmers)' 카테고리의 다른 글
신고 결과 받기 C++ (0) 2022.01.17 프로그래머스 튜플 C++ (0) 2022.01.14 프로그래머스 H-Index C++ (0) 2022.01.12 괄호변환 C++ (0) 2022.01.11 약수의 개수와 덧셈 (0) 2022.01.11