[Programmers]シミュレーション試験(Java)-アレイレプリケーション
14967 ワード
解決策
捕獲者拍問題のルールは反復的であるため,配列には各捕獲者のルールが含まれており,反復文を用いて答えが一致しているか否かを確認する.そして、被逮捕者が正解した質問の個数を順に
answer
配列に入れ、そこからmax
の値を求めた.次に、max
の値をanswer
配列の要素と比較し、同じ要素のみをresult
配列に順番に入れます.回車時にはresult
配列の大きさを3とし、空き地を0に初期化したため、これら不要なものを切除するためにArrays.copyOfRange
を使用した.逮捕された人が答えた質問の個数を数えるのはいいようですが、最大値を求めることから、もっと効果的な方法はないかと思います.他の人が書いたコードを見たことがありますが、
Math.max
の方法を使う以外はほとんど違いません.import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[] answer= new int[3] ; //수포자들의 맞은 답 개수 저장
int max=0; //맞은 최대 개수 저장
int result[] = new int[3]; //제일 많이 맞은 사람 저장
//수포자1
int wrong_ans1[] = {1,2,3,4,5}; //수포자1의 규칙
int idx1=0;
for (int i=0;i<answers.length;i++) {
if (idx1==5)
idx1=0;
if(answers[i]==wrong_ans1[idx1]) //답 맞음
answer[0]++; //맞은개수 플러스
idx1++; //인덱스 플러스
}
//수포자2
int wrong_ans2[] ={2,1,2,3,2,4,2,5};
int idx2 = 0;
for (int i=0;i<answers.length;i++) {
if (idx2==8)
idx2=0;
if (wrong_ans2[idx2]==answers[i])
answer[1]++;
idx2++;
}
//수포자3
int wrong_ans3[] = {3,3,1,1,2,2,4,4,5,5};
int idx3=0;
for (int i=0;i<answers.length;i++) {
if(idx3==10) {
idx3=0;
}
if (answers[i]==wrong_ans3[idx3]) {
answer[2]++;
}
idx3++;
}
for (int i=0;i<3;i++) {
if (max<answer[i]) {
max=answer[i];
}
} //맞은 최대개수 구하기
int idx=0;
for (int i=0;i<answer.length;i++) {
if(max==answer[i]) {
result[idx]=i+1;
idx++;
}
} //맞은 개수가 제일많은 사람을 배열에 담기
return Arrays.copyOfRange(result,0,idx);
}
}
新学
アレイのコピー
並ぶ必要のない部分をカットするために
Arrays.copyOfRange
を調べました.このメソッドでは、コピーする配列のインデックスを直接指定できます.Arrays.copyOfRange(arr,start,end)
Arr:コピーするシナリオstart:コピーを開始するインデックス
end:コピー終了のインデックス
特定の範囲ではなく配列の最初の部分からコピーするには
Arrays.copyOf(arr,length)
の方法を使用することもできる.最も一般的な配列複製(インデックス指定X)方法は
arr.clone()
である.アレイを特定の場所にコピーする場合は、
System.arraycopy(a,a_start_idx,b,b_start_idx,length)
を使用します.a:コピーする配列
b:貼る案
https://velog.io/@kekim20/JAVA-%EB%B0%B0%EC%97%B4%EB%B3%B5%EC%82%AC-System.arraycopy%EC%99%80-%EC%96%95%EC%9D%80-%EB%B3%B5%EC%82%ACshallow-copy%EA%B9%8A%EC%9D%80-%EB%B3%B5%EC%82%ACdeep-copy
이중for문
を使用してアレイを複製することもできる.Reference
この問題について([Programmers]シミュレーション試験(Java)-アレイレプリケーション), 我々は、より多くの情報をここで見つけました https://velog.io/@kekim20/Programmers-모의고사-Javaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol