コーディングテスト練習記録
7413 ワード
2022.02.2.12 49日目
白駿1052号(水瓶)
質問する
志敏は水瓶をN個持っている.各水瓶は無限に水を注ぐことができる.最初はすべての水瓶に水が1リットル入っていました.志敏はこの水瓶を別の場所に移す.志敏は一度にK個の水瓶を運ぶことができる.しかし、ジミンは水を無駄にしたくないし、一度の移動よりも多くしたくない.そこで、志敏は水瓶の水を適当に再分配し、K個を超えない空き水瓶を作ろうとする.
水は次のように再分配される.
まず等量の水が入った水瓶を2つ選びます.そして、ある水瓶に別の水瓶のすべての水を入れます.必要なだけ使う.
このような制限のため、K個を超えない空き水瓶をN個で製造することは不可能である可能性がある.幸いなことに、新しい水瓶が買えます.店で買った水瓶に水が1リットル入っている.
例えば、n=3、k=1の場合、3つの水瓶で1つを作ることは不可能である.1本は別の瓶に注ぎ、2リットル入りの水瓶と1リットル入りの水瓶が残っている.店で水瓶を1つ買うと、2リットル入りの水瓶を2つ、最後の4リットル入りの水瓶を2つ作ることができます.
私の答え水瓶N、一回移動可能な水瓶K、条件:購入した水瓶が最低限 に近い N 2を2で割った場合、残数が発生するとカウントが増加し、0まで を繰り返す.カウントダウンK値と比較すると、カウントダウンが大きいほど、水瓶 を購入する.カウントダウンがもっと大きい時に水瓶を購入し、N 1を増加し、 を繰り返す.計数が購入した水瓶の数以下である出力 .バイナリ、ペットボトル1本
Integer.bitCount
白駿1052号(水瓶)
質問する
志敏は水瓶をN個持っている.各水瓶は無限に水を注ぐことができる.最初はすべての水瓶に水が1リットル入っていました.志敏はこの水瓶を別の場所に移す.志敏は一度にK個の水瓶を運ぶことができる.しかし、ジミンは水を無駄にしたくないし、一度の移動よりも多くしたくない.そこで、志敏は水瓶の水を適当に再分配し、K個を超えない空き水瓶を作ろうとする.
水は次のように再分配される.
まず等量の水が入った水瓶を2つ選びます.そして、ある水瓶に別の水瓶のすべての水を入れます.必要なだけ使う.
このような制限のため、K個を超えない空き水瓶をN個で製造することは不可能である可能性がある.幸いなことに、新しい水瓶が買えます.店で買った水瓶に水が1リットル入っている.
例えば、n=3、k=1の場合、3つの水瓶で1つを作ることは不可能である.1本は別の瓶に注ぎ、2リットル入りの水瓶と1リットル入りの水瓶が残っている.店で水瓶を1つ買うと、2リットル入りの水瓶を2つ、最後の4リットル入りの水瓶を2つ作ることができます.
私の答え
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int answer = 0;
while (true) {
int count = 0;
int N2 = N;
while (N2 != 0) {
if (N2 % 2 == 1) {
count += 1;
}
N2 /= 2;
}
if (count <= K)
break;
N += 1;
answer += 1;
}
System.out.println(answer);
}
}
考えるInteger.bitCount
Reference
この問題について(コーディングテスト練習記録), 我々は、より多くの情報をここで見つけました https://velog.io/@jgjgill/코딩테스트-연습-기록-ewczvseaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol