1. 문제
programmers.co.kr/learn/courses/30/lessons/17687
2. 풀이
숫자를 N진수로 바꾼 뒤 string을 만들어서 순서에 맞게 string에서 뽑으면 되는 간단한 문제였다.
- N진수로 바꾸기
순서대로 0부터 N진수로 바꿨다.
시작 : a = i
r = a%n
a = (a - r) / n
- string에 넣기
char 은 string 뒤에 push_back 할 수 있다는 성질을 이용하여 int -> 아스키코드 char로 바꾼 뒤 push back 해주었다.
3. 코드
#include <string>
#include <vector>
using namespace std;
string solution(int n, int t, int m, int p) {
vector <char> numArr;
numArr.push_back('0');
int i = 1;
//숫자 배열 만들기
while(numArr.size() < (t*m)){
vector <char> element;
int a = i;
while(a > 0){
int r = a%n;
a= (a -r)/n;
char alp;
//10진수 이상일 경우
if(r>=10){
alp = (char)((r-10)+65);
}
else{
alp = (char)(r+48);
}
element.push_back(alp);
}
for(int j = element.size()-1 ; j >= 0 ;j--){
numArr.push_back(element[j]);
}
i++;
}
//result 출력하기
string answer = "";
for(int i=0;i< t;i++){
answer.push_back(numArr[(i*m)+p-1]);
}
return answer;
}
4. 그외
초기화를 반복문 밖에다가 하는 바람에 계속 메모리 에러가 났다.
꼼꼼히 확인하는 습관을 가지자...
'ALGORITHM > Kakao' 카테고리의 다른 글
(C++) 2018 KAKAO BLIND RECRUITMENT[3차] 파일명 정렬 (0) | 2021.03.20 |
---|---|
(C++) 2018 KAKAO BLIND RECRUITMENT - 방금 그곡 (0) | 2021.03.17 |
(C++) 2018 KAKAO BLIND RECRUITMENT [3차] - 압축 (0) | 2021.03.15 |
(C++) 2018 KAKAO BLIND RECRUITMENT[1차] 캐시 (0) | 2021.03.11 |
(C++) 2018 KAKAO BLIND RECRUITMENT[1차] 프렌즈4블록 (0) | 2021.03.10 |