๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Programmers)

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ(Level 1)

by ์•ˆ์ฃผํ˜• 2022. 4. 13.

๋ฌธ์ œ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ

์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. n์„ 3์ง„๋ฒ• ์ƒ์—์„œ ์•ž๋’ค๋กœ ๋’ค์ง‘์€ ํ›„, ์ด๋ฅผ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•œ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ n์€ 1 ์ด์ƒ 100,000,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜

programmers.co.kr

 

์ฝ”๋“œ

#include <string>
#include <vector>
#include <algorithm>
#include <cmath>

using namespace std;

int solution(int n) {
    int answer = 0;
    
    string bit = "";
    while(n!=0){
        int mod = n%3;
        bit+=mod+'0';
        n/=3;
    }
    reverse(bit.begin(),bit.end());
    for(int i=0; i<bit.length(); i++){
        if(bit[i]!='0') answer+= pow(3,i)*(bit[i]-'0');
    }
    
    return answer;
}

 

ํ’€์ด(13๋ถ„)

์ง„๋ฒ• ๋ณ€ํ™˜์— ๋Œ€ํ•ด์„œ ์•„๋Š๋ƒ ๋ชจ๋ฅด๋Š๋ƒ๋ฅผ ๋ฌผ์–ด๋ดค๋˜ ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. 

์œ„ ํ’€์ด๋Œ€๋กœ ์ง๊ด€์ ์œผ๋กœ ๋ฐ”๋กœ ๊ตฌํ˜„ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€