プログラマー|2018 KAKAO[3回目]COTE JS
2408 ワード
難易度:Level.2
言語:Javascript
出題履歴:2018 KAKAO BLIND RECRUITMENT
n進ゲーム私が言いたい数字 を出力します.
変換後に合成された文字が数字の個数と参加者の積の長さより大きい場合.
文の繰り返しを停止します.
あっしゅくの入力文字列を予め記録する圧縮技術 を実現する.
辞書に対応する配列を作成します.
そして、組み合わせた字が辞書に入っていなければ、辞書に入れます.
前の文字を結果配列に挿入します.
ある場合は、コンビネーションの2番目の文字をコンビネーションの文字に変更できます.
値をエクスポートします.
言語:Javascript
出題履歴:2018 KAKAO BLIND RECRUITMENT
フルプールコード 👈🏻 クリックしてGithubに移動
❓ Question 1
n進ゲーム
📝 My Solution 1
function solution(n, t, m, p) {
let answer = '';
let nums = '';
for (let i = 0; i<=t*m; i++) {
nums += i.toString(n)
if (nums.length < t*m) {
continue;
} else if (nums.length >= t*m) {
break;
}
}
まず、ゼロから始まる数をn進数に変換します.変換後に合成された文字が数字の個数と参加者の積の長さより大きい場合.
文の繰り返しを停止します.
for (let i = p-1; i<t*m; i++) {
if (i % m === p-1) {
answer += nums[i]
}
}
return answer.toUpperCase();
}
そして、自分の順番で該当する文字列を抽出して答えを出す.結果
❓ Question 2
あっしゅく
📝 My Solution 2
function solution(msg) {
let answer = [];
let result = [];
let msgArr = msg.split('')
const dic = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U','V','W','X','Y','Z'];
for (let i = 0; i<msgArr.length; i++) {
if (dic.indexOf(msgArr[i]+msgArr[i+1]) === -1) {
result.push(msgArr[i]);
dic.push(msgArr[i]+msgArr[i+1]);
} else {
let newStr = msgArr[i]+msgArr[i+1];
msgArr[i+1] = newStr;
}
}
まず、入力した文字列を配列に分けます.辞書に対応する配列を作成します.
そして、組み合わせた字が辞書に入っていなければ、辞書に入れます.
前の文字を結果配列に挿入します.
ある場合は、コンビネーションの2番目の文字をコンビネーションの文字に変更できます.
for (let i = 0; i<result.length; i++) {
answer.push(dic.indexOf(result[i])+1)
}
return answer;
}
辞書インデックスで結果を見つけ、インデックス+1を追加します.値をエクスポートします.
結果
Reference
この問題について(プログラマー|2018 KAKAO[3回目]COTE JS), 我々は、より多くの情報をここで見つけました https://velog.io/@sstaar91/Algorithm-Programmers-2018-Kakao-3rdテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol