문제
필요 지식
- 3진법에 대한 지식
해결 방법
입력 받은 수를 3으로 계속 나누어 나머지를 저장하면 3진법 거꾸로 저장하게 된다.
예를들어, 45/3 = 15...0, 15/3 = 5...0, 5/3 = 1...2 해서 나머지를 저장하면, 0021이 된다.
(본래 3진법은 1200임)
1*1 + 2*3 + 0*9 + 0*27로 하게 된다면 문제에서 원하는 답이 되게 된다.
나의 경우, 0021을 string으로 저장하고,
그 후, string 거꾸로 시작하여 3진법을 만들어 나갔다.
그런데, 굳이 string으로 저장할 필요 없이 vector로 했더라면, 1200으로 저장했을 것이고,
굳이 거꾸로 시작할 필요없이 3진법을 만들었을 수 있을 것이다.
코드
반성할 점
string이 아니라 vector로 넣어서 했다면 마지막에 거꾸로 시작할 필요가 없었음.
0 댓글