앞서 풀어본 문제들과 유사하다.
#include <string>
#include <vector>
using namespace std;
string convert_num(int num, int n){
char code[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
string tmp = "";
while(num/n!=0){
tmp = code[num%n] + tmp;
num = num/n;
}
tmp = code[num%n]+tmp;
return tmp;
}
string solution(int n, int t, int m, int p) {
string answer = "";
string tmp = "";
// 임시 배열 tmp에 t*m 정도의 숫자를 담는다.
int i=0;
while(tmp.size()<=t*m){
tmp += convert_num(i,n);
i++;
}
// 임시 배열 tmp 중에서 p번째 자리에 해당하는 애들만 뽑아서 ans에 담는다.
int cnt=0;
for(int i=0;i<tmp.size();i++){
if(cnt==t) break;
if(i%m+1 == p){
answer+= tmp[i];
cnt++;
}
}
return answer;
}
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스/C++] 가장 큰 수(정렬) (0) | 2020.12.12 |
---|---|
[프로그래머스/C++] 이진 변환 반복하기(진법 변환) (0) | 2020.12.11 |
[프로그래머스/C++] 다음 큰 숫자(진법 변환) (0) | 2020.12.10 |
[프로그래머스/C++] 124 나라의 숫자(진법 변환) (0) | 2020.11.02 |
[프로그래머스/C++] 징검다리 건너기(이분탐색) (0) | 2020.10.20 |