Recent Posts
Notice
No Rules Rules
124 나라의 숫자 (feat. 프로그래머스, 12899번) 본문
728x90
반응형
124 나라의 숫자
https://programmers.co.kr/learn/courses/30/lessons/12899
반응형
// woohyeon.kim
#include <string>
using namespace std;
string calc(int& n)
{
string tmpl = "";
auto remainder = 0;
while(n != 0)
{
remainder = n % 3;
n /= 3;
if(remainder == 0)
{
tmpl = "4" + tmpl;
--n;
}
else
tmpl = to_string(remainder) + tmpl;
}
return tmpl;
}
string solution(int n) {
string answer = calc(n);
return answer;
}
// *&)*@*/
핵심은 3의 배수가 되었을때, 의도했던 3진수로 표현되지 않는다는데 있습니다.
3은 10(3진수)이나 이 나라에서는 4(124나라) 로 표현
6은 20(3진수)이나 이 나라에서는 14(124나라) 로 표현
9는 100(3진수)이나 이 나라에서는 24(124나라) 로 표현
12는 110(3진수)이나 이 나라에서는 44(124나라) 로 표현
됩니다.
숫자를 3으로 나눈 나머지를 구하고, 3으로 나누었으니 숫자를 3으로 나눈 몫으로 변경시켜줬을때
나머지가 0이면 124나라에 맞게 변경이 되어야 한다는 것인데,
요지는 3으로 나눈 나머지가 0이면, 변경된 몫에 -1을 한다는 것입니다.
9를 예로 들면,
remainder = 9 % 3;
share = 9 / 3;
if(remainder == 0)
string = "4" + string;
--share;
을 수행했을때 9에 의한 첫 문자는 4가 되고, share는 2가 되기 때문에
결과적으로 "24"가 됩니다.
728x90
반응형
'생활 > 코테' 카테고리의 다른 글
동전 1 (feat. 백준, 2293번) (0) | 2022.07.21 |
---|---|
기능개발 (feat. 프로그래머스, 42586번) (0) | 2022.07.21 |
멀쩡한 사각형 (feat. 프로그래머스, 62048번) (0) | 2022.07.21 |
내적 (feat. 프로그래머스, 70128번) (0) | 2022.07.21 |
카카오프렌즈 컬러링북 (feat. 프로그래머스, 1829번) (0) | 2022.07.21 |
Comments