반응형
#접근 방법
1. "숫자 0 ~ ?" 까지 while문을 돌리면서 해당 숫자의 n진수 값을 변환하여 문자열 s 에 저장.
2. 문자열 s 를 뒤집어주고 temp 라는 문자열에 붙인다.
3. temp 사이즈가 m+1 보다 크거나 같으면,
- answer 값에 튜브의 순서에 해당하는 인덱스 문자값을 붙인다. (문자열 temp 인덱스를 1부터 시작하기 위해 처음에 문자 하나 저장 해놓음. 그래서 조건식이 m+1 인 것이다. )
- cnt +1 증가
- temp 인덱스 1부터 M까지 자르고 이후 문자열 이어 붙이기
5. cnt값이 미리 구할 숫자의 갯수(t)와 동일하면 break;
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
string solution(int n, int t, int m, int p) {
string answer = "";
string temp ="0";
int cnt =0, i=0;
while(cnt!=t){
int x = i++;
string s ="";
while(1){
int y= x % n;
if(y>=10){
char c = 'A'+ y % 10;
s+=c;
}
else s+=to_string(x%n);
x /=n;
if(!x)break;
}
reverse(s.begin(),s.end());
temp+=s;
if(temp.size()>=m+1){
answer+=temp[p];
cnt++;
temp= temp[0]+temp.substr(m+1);
}
}
return answer;
}
반응형
'프로그래머스 > Level_2' 카테고리의 다른 글
[프로그래머스 / Level_2] 소수 찾기 (0) | 2022.03.26 |
---|---|
[프로그래머스 Level_2 / C++ / 카카오] [3차] 압축 (0) | 2022.02.20 |
[프로그래머스 Level_2 / C++ / 카카오] 방금그곡 (0) | 2022.02.17 |
[Level_2 / C++ / 카카오] 괄호 변환 (0) | 2022.01.29 |
[Level_2 / C++ / 카카오] 메뉴 리뉴얼 (0) | 2022.01.28 |
댓글