[프로그래머스][level 1] 3진법 뒤집기

 

문제


필요 지식

  • 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 댓글