プログラマー[Kakao]n進数ゲーム(Java)
7710 ワード
リンク
質問リンク
問題の説明
救命圏活動のコードサークルでは、伝統的に遊ぶゲームがあります.このゲームはみんなが円に座って、順番に数字を言うゲームで、ルールは以下の通りです.
数字はゼロから順に言う.1人目は0、2人目は1、…10人目は9.
10以上の数字から、ひとつひとつ.つまり、11人目が10の1位、12人目が2位、つまり0です.
このようにゲームを行うと、
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, …
順番に数字を言えばいいです.
一方、エンコーディングサークルのメンバーもパソコンを操作している人のようにバイナリ数でゲームをしている場合、
0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, …
順番に数字を言えばいいです.
バイナリでゲームをすることに慣れた人たちは、難易度を上げるために、バイナリから16進数までのすべての進数でゲームをすることにした.デジタルゲームに慣れていない救命圏は、ゲームに負けて罰せられる屈辱を避けるために、自分の言う数字を事前にスマートフォンに出力するプログラムを作るつもりだ.パイプ上のプログラムを実現します.
入力フォーマット
陣法nは、予め求めた数t、ゲームに参加する者m、パイプの順番pである.
出力フォーマット
パイプが言う数字tを順番に表示するスペースのない文字列.しかし、10~15はそれぞれ大文字A~Fで出力される.
I/O例
に答える
この問題を見てやっと分かった.
1000*100の長さの文字列は、コンパイラがうまく処理できるので、メモリの問題は私の問題ではありません.まずそれを実現しましょう.
まず問題を解決することが大切な私はテーマさえ知らないので、最悪の場合、文字列が長すぎるのではないかと心配して、袖手で傍観することに慣れました.
そして今日この問題が当時の1番問題であることに気づき、衝撃を受けてすぐに挑戦しました.
こんなに簡単に解決できる問題
コード#コード# class Solution {
static char[] arr = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
public String to_Knum(int n, int k){
String ans = "";
while(n > 0) {
ans = arr[n % k] + ans;
n /= k;
}
return ans;
}
public String solution(int n, int t, int m, int p) {
String answer = "";
String temp = "0";
int k = p;
int num = 1;
while(temp.length() <= t * m)
{
temp += to_Knum(num++, n);
}
for(int i = 0; i < t; i++, k += m)
{
answer += temp.charAt(k - 1);
}
return answer;
}
}
Reference
この問題について(プログラマー[Kakao]n進数ゲーム(Java)), 我々は、より多くの情報をここで見つけました
https://velog.io/@qodlstjd12/프로그래머스-Kakao-n진수-게임-Java
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
class Solution {
static char[] arr = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
public String to_Knum(int n, int k){
String ans = "";
while(n > 0) {
ans = arr[n % k] + ans;
n /= k;
}
return ans;
}
public String solution(int n, int t, int m, int p) {
String answer = "";
String temp = "0";
int k = p;
int num = 1;
while(temp.length() <= t * m)
{
temp += to_Knum(num++, n);
}
for(int i = 0; i < t; i++, k += m)
{
answer += temp.charAt(k - 1);
}
return answer;
}
}
Reference
この問題について(プログラマー[Kakao]n進数ゲーム(Java)), 我々は、より多くの情報をここで見つけました https://velog.io/@qodlstjd12/프로그래머스-Kakao-n진수-게임-Javaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol