관리 메뉴

fatalite

프로그래머스 n진수 게임 본문

코딩 인터뷰/C++

프로그래머스 n진수 게임

fataliteforu 2024. 10. 1. 13:54

관련 개념

n진법, 구현

 

이거 이렇게 풀어도 되는건가;;

 

#include <string>
#include <vector>
#include <iostream>
#include <stdlib.h>
#include <algorithm>
using namespace std;

vector<int> Get10ToN(int n, int number)
{
    vector<int> answer;
    if(number == 0)
    {
        answer.push_back(0);
    }
    while(number > 0)
    {
        answer.push_back(number % n);
        number /= n;
    }
    std::reverse(answer.begin(), answer.end());
    return answer;

}

string solution(int n, int t, int m, int p) {
    
    int cnt = 0;
    int number = 0;
    string answer = "";
    
    while(true)
    {
        vector<int> radix = Get10ToN(n, number);
        for(int i = 0 ; i < radix.size(); i++)
        {
            if(cnt % m == (p - 1)) // 내 차례
            {
                switch(radix[i])
                {
                    case 0:
                        answer.push_back('0');
                        break;
                    case 1:
                        answer.push_back('1');
                        break;
                    case 2:
                        answer.push_back('2');
                        break;
                    case 3:
                        answer.push_back('3');
                        break;
                    case 4:
                        answer.push_back('4');
                        break;
                    case 5:
                        answer.push_back('5');
                        break;
                    case 6:
                        answer.push_back('6');
                        break;
                    case 7:
                        answer.push_back('7');
                        break;
                    case 8:
                        answer.push_back('8');
                        break;
                    case 9:
                        answer.push_back('9');
                        break;
                    case 10:
                        answer.push_back('A');
                        break;
                    case 11:
                        answer.push_back('B');
                        break;
                    case 12:
                        answer.push_back('C');
                        break;
                    case 13:
                        answer.push_back('D');
                        break;
                    case 14:
                        answer.push_back('E');
                        break;
                    case 15:
                        answer.push_back('F');
                        break;
                        
                }
                if(answer.length() >= t) break;
            }
            cnt++;
        }
        number++;
        if(answer.length() >= t) break;
    }

    
    return answer;
}