문제 URL : programmers.co.kr/learn/courses/30/lessons/17687
문제접근법 answer.size()가 t가 될 때까지 0부터 증가하는 수를 모든 n진법으로 나타내서 p번째자리를 answer에 넣기만 하면 됩니다.
소스코드:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include<bits/stdc++.h>
using namespace std;
string solution(int n, int t, int m, int p) {
string answer = "";
int cnt = 0;
p--;
string tos = "0123456789ABCDEF";
for (int i = 0; answer.size() < t; i++) {
int temp = i;
string s;
do {
s += tos[temp %n];
temp /= n;
} while (temp);
reverse(s.begin(), s.end());
for (int j = 0; j < s.size(); j++) {
if (cnt == p)
answer.push_back(s[j]);
if (answer.size() >= t)
break;
cnt++;
cnt %= m;
}
}
return answer;
}
|
cs |
궁금한점 혹은 어떤질문이든 댓글은 환영입니당
'프로그래머스' 카테고리의 다른 글
프로그래머스 쿼드압축 후 개수 세기 (0) | 2021.06.24 |
---|---|
프로그래머스 괄호 회전하기 (0) | 2021.06.24 |
프로그래머스 합승 택시 요금 (2021 KAKAO BLIND RECRUITMENT ) (0) | 2021.02.17 |
프로그래머스 야근지수 (0) | 2020.09.09 |
프로그래머스 섬 연결하기 (0) | 2020.09.09 |