- 처음에 보고 당황했다. 하지만, keypoint는 결국 3가지로 표현한다는 것을 알아야 한다
- 하다보면 3으로 나누었을 때 나머지가 0인 경우에만 계속 어긋난다는 것을 깨달았다.
--> 나머지가 0인 경우에만 예외처리를 해주어야 한다!- 배열을 굳이 안만들고 간편하게 쓰는 방법을 발견했다 !
/* "412"[b] 이부분은 진짜 신박한 방법; */ answer = "412"[b] + answer;
#include <string> #include <vector> using namespace std; string solution(int n) { string answer = ""; int b; while(n != 0) { b = n%3; // 나머지 n = n/3; // 몫 /* 나머지가 0일 경우에 몫을 하나 깎으면 해결됨! */ if(b == 0){ answer = '4' + answer; n--; }else{ /* "412"[b] 이부분은 진짜 신박한 방법; */ answer = "412"[b] + answer; } } return answer; }
신박 is best