티스토리 뷰
문제 링크
풀이
// 요약
반복문(answer의 length()가 t가 되면 break;){
num을 n진법으로 변환(do-while문 이용) --- 거꾸로 들어가므로 reverse해준다.(<algorithm> 헤더 포함)
내 차례일 때만 answer에 기록 --- % 연산자를 사용하여 내 순서를 계속 체크한다.
}
while문에서 순서 생각하는 것이 번거로워 true문으로 돌리고 if문으로 break 했다.
더보기
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
// n진법, answer이 길이 t, 참가 인원 m, 튜브 순서 p
// n진법 2, 8, 10, 16 등.
string solution(int n, int t, int m, int p) {
string answer = "";
int num = 0;
int index =0;
while(true){
string s = "";
int temp = num;
// n진법 변환
do{
int remain = temp%n;
if(remain < 10)
s += '0' + remain;
else
s += 'A' + (remain-10);
temp /= n;
}while(temp!=0);
reverse(s.begin(), s.end());
// cout<<"s = " <<s<<endl;
// answer에 push
for(int i=0; i<s.length(); i++){
if(index%m == p-1) answer += s[i];
if(answer.length() == t) break;
index++;
}
if(answer.length() == t) break;
num++;
// cout<<"answer = "<<answer<<endl;
}
return answer;
}
728x90
반응형
'Programmers Solutions > previous' 카테고리의 다른 글
키패드 누르기(2020 카카오 인턴십) (0) | 2020.08.24 |
---|---|
[1차] 추석 트래픽(2018 카카오 블라인드 채용) (0) | 2020.08.22 |
[3차] 파일명 정렬(2018 카카오 블라인드 채용) (0) | 2020.08.16 |
[3차] 압축(2018 카카오 블라인드 채용) (0) | 2020.08.10 |
[3차]방금그곡(2018 카카오 블라인드 채용) (0) | 2020.08.10 |
댓글