https://programmers.co.kr/learn/courses/30/lessons/17687
코딩테스트 연습 - [3차] n진수 게임 | 프로그래머스
N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다. 이렇게 게임을 진행할
programmers.co.kr
n진수 게임은, 특정한 수를 n진법에 맞게 변환하는 규칙을 찾으면 쉽게 해결할 수 있다.
숫자 10을 2진수, 3진수 정도로만 변환해봐도 쉽게 규칙을 알 수 있다.
이 문제는 특별한 어려움없이 해결할 수 있다.
해설코드(C++).
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string solution(int n, int t, int m, int p) {
string answer = "";
string temp;
char c[2];
p = p - 1;
for (int i = 0; i < m * t; i++) {
string str;
int num = i;
while (true) {
if (num >= n) {
if (num % n >= 10) {
c[0] = 'A' + (num % n - 10);
c[1] = '\0';
str.insert(0, c);
}
else {
c[0] = '0' + num % n;
c[1] = '\0';
str.insert(0, c);
}
num /= n;
}
if (num < n) {
if (num % n >= 10) {
c[0] = 'A' + (num % n - 10);
c[1] = '\0';
str.insert(0, c);
}
else {
c[0] = '0' + num % n;
c[1] = '\0';
str.insert(0, c);
}
break;
}
}
}
cout << temp << endl;
for (int i = 0; i < t; i++) {
c[0] = temp[p + m * i];
c[1] = '\0';
}
return answer;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[2019 KAKAO BLIND RECRUITMENT] 블록 게임(Java, 간단한 코드) (0) | 2020.08.27 |
---|---|
[2019 KAKAO BLIND RECRUITMENT] 길 찾기 게임(Java, 간단한 코드) (0) | 2020.08.27 |
[2019 KAKAO BLIND RECRUITMENT] 무지의 먹방 라이브(Java) (0) | 2020.08.27 |
[2020 KAKAO BLIND RECRUITMENT] 기둥과 보 설치(Java, 간단한코드) (0) | 2020.08.25 |
[2020 KAKAO BLIND RECRUITMENT] 가사검색(Trie, Java, 효율성, 간단한 코드) (0) | 2020.08.24 |