반응형
해결 방법
10진수 i를 n진수로 변환한 값을 문자열 형태로 반환하는 converter함수를 만들어 두었다.
16진수 이하의 변환은 16진수 기준으로 변환해도 모두 적용되므로, 2진수든 8진수든 모두 16진수 변환 방법을 써도 된다.
0부터 n진수로 변환한 값들을 임의의 문자열에 계속 추가해두면 되는데, 최종 문자열의 길이는 t*m이면 충분하다. 이제 이 문자열을 참고하여 튜브 차례에 해당하는 문자들을 추출하면 문제가 해결된다.
소스코드
#include <vector>
#include <algorithm>
using namespace std;
char hexa[17] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
string converter(int n, int i){
if(i==0) return "0";
string hexastr="";
int r;
while(i>0){
r=i%n; //나머지
i/=n; //몫
hexastr+=hexa[r];
}
reverse(hexastr.begin(), hexastr.end());
return hexastr;
}
string solution(int n, int t, int m, int p) {
string answer = "";
string bitstr = "";
int num=0;
while(bitstr.length()<=t*m){
bitstr+=converter(n, num);
num++;
}
for(int i=0;i<t;i++) answer+=bitstr[m*i+p-1];
return answer;
}
테스트케이스 26개 모두 정답
반응형
'Algorithm > 기타 알고리즘' 카테고리의 다른 글
[시뮬레이션] 압축 - 2018 KAKAO BLIND RECRUITMENT (0) | 2022.06.28 |
---|---|
[시뮬레이션] 프렌즈4블록 - 2018 KAKAO BLIND RECRUITMENT (0) | 2022.06.05 |
[집합] 뉴스 클러스터링 - 2018 KAKAO BLIND RECRUITMENT (0) | 2022.05.24 |
[Linked List] 표 편집 - 2021 카카오 채용연계형 인턴십 (0) | 2022.05.22 |
[시뮬레이션] 수식 최대화 - 2020 카카오 인턴십 (0) | 2022.05.14 |
댓글