[プログラマアルゴリズム]最小の数を削除
3545 ワード
プログラマー練習問題
プログラマ-最小数を削除
整数の配列を保存し、arrから最小数の配列を削除する関数を返します.解決策を完了してください.
ただし、返される配列が空の配列の場合は、配列に-1を入力して返します.
たとえばarrが[4,3,2,1]の場合は[4,3,2]を返し、[10]の場合は[1]を返します.
arrは長さが1より大きい配列である.
インデックスi,jについて、i≠jの場合、arr[i]≠arr[j]である.
最初のコードは大きく3つの段階に分かれています.は最小数の を求めます最小数量を求めます
最小数を除く配列 を作成する.
論理記述を順番に実現する.
解いてみるとたくさんの人が
最小の数が1つしかないと仮定して,問題を解決した.
質問に入力した数字には重複した言い方はありません.
一つの問題だけを通過しても、問題の条件によって
最小の数が複数あると仮定
アルゴリズムを作るべきだと思います.
合格したけど.
集合を利用して問題を解決したい.
試験を加えて問題を解く.
今回はCollectionとAPIを利用しました.
ちょっと...これは反省に値するコードです.配列からArrayListへ の集合の最小の方法は最小数の を求めますリストから最小数の を削除する.リストが空の場合はアレイ に移動する.
論理を順番に実装して記述した.
そんなに効率的ではないようです.
まず1日から困難が出た.
int配列がArraysasList()メソッドでArrayListに移動できると思いましたが失敗しました.
ArrayListはint型のRapperクラスInteger型であり,自動的に異なるタイプに変換できないため,値をfor文に1つずつ移動する.
Collectionsクラスの最小メソッドを使用して最小の数を求めてみます.
私はそれを利用するのは初めてだと知っています.
確かに方法によって実現されているので、利便性の面では良いです.
while文とindexOfの使用
最小の数が複数あると仮定すると、それを外します.
4番目のリストで、最初の答えを[-1]として作成します.リストが空の場合
空になっていない場合は、リストを配列に戻します.
問題は私たちが成功したことだ.
処理時間はケースによって異なりますが、1番コードよりほぼ遅いです.
コレクションを正しく利用する方法がまだ分からないからですか?
集合と集合の方法を使うことで、
不必要な動作が起こったからですか?
答えは二つとも
私もこの問題はそんなに難しくないと思いますが.
アルゴリズムの問題を解くたびに反省するようだ.
コレクションについて1、2回書きます.
錯覚に恥じる.
もしあなたが本当に知って書くことができたら、2番のコードを実現しながら
より高速な処理速度とより簡潔な符号化が可能になります.
1、2ヶ月Javaを習いましたが、
私は今データベースとネットワークを勉強しています.
これらの予習、復習は忙しくて、ジャワさえ見られないでしょう.
ジャワの代価を学ぶのに時間がかかった.
アルゴリズムの問題を解くのに十分な練習をしたようだ.
ジャワについてまだ知らないことが多すぎるようです.
だから今学んだことが多いからといって、怠け者になってはいけない.
もう少し睡眠時間を減らしても、アルゴリズムの解を続けます.
再び足りないところを見て、
自分の知っている部分をもっと深く理解しなければならない.
プログラマ-最小数を削除
🔎 質問する
整数の配列を保存し、arrから最小数の配列を削除する関数を返します.解決策を完了してください.
ただし、返される配列が空の配列の場合は、配列に-1を入力して返します.
たとえばarrが[4,3,2,1]の場合は[4,3,2]を返し、[10]の場合は[1]を返します.
🚫 せいげんじょうけん
arrは長さが1より大きい配列である.
インデックスi,jについて、i≠jの場合、arr[i]≠arr[j]である.
💻 I/O例
📄🤔 コードと解釈プロセス
🔹 1番
public static int[] solution(int[] arr) {
int len = arr.length;
if(len==1) return new int[] {-1};
int min = arr[0];
for (int i = 1; i < len; i++) { //가장 작은 수 구하기
if(min > arr[i]) {
min = arr[i];
}
}
int count = 0;
for (int i = 0; i < len; i++) { //가장 작은 수의 개수 구하기
if(min==arr[i]) {
count++;
}
}
int[] answer = new int[len-count];
for (int i = 0, k = 0; i < len; i++) { //가장 작은 수들을 제외한 배열 만들기
if(arr[i] != min) {
answer[k++] = arr[i];
}
}
return answer;
}
🔸 1号解
最初のコードは大きく3つの段階に分かれています.
論理記述を順番に実現する.
解いてみるとたくさんの人が
最小の数が1つしかないと仮定して,問題を解決した.
質問に入力した数字には重複した言い方はありません.
一つの問題だけを通過しても、問題の条件によって
最小の数が複数あると仮定
アルゴリズムを作るべきだと思います.
合格したけど.
集合を利用して問題を解決したい.
試験を加えて問題を解く.
🔹 2番
public static int[] solution(int[] arr) {
int[] answer = {-1};
if(arr.length == 1) return answer;
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < arr.length; i++) { // ArrayList에 옮겨담기
list.add(arr[i]);
}
int minValue = Collections.min(list); // 가장 작은 수 구하기
while(list.indexOf(minValue) != -1) { // 가장 작은 수들 제거하기
list.remove(list.indexOf(minValue));
}
if(list.size() != 0) { // 리스트가 비지 않았을 경우 배열에 옮기기
answer = new int[list.size()];
for (int i = 0; i < answer.length; i++) {
answer[i] = list.get(i);
}
}
return answer;
}
🔸 第二題
今回はCollectionとAPIを利用しました.
ちょっと...これは反省に値するコードです.
論理を順番に実装して記述した.
そんなに効率的ではないようです.
まず1日から困難が出た.
int配列がArraysasList()メソッドでArrayListに移動できると思いましたが失敗しました.
ArrayListはint型のRapperクラスInteger型であり,自動的に異なるタイプに変換できないため,値をfor文に1つずつ移動する.
Collectionsクラスの最小メソッドを使用して最小の数を求めてみます.
私はそれを利用するのは初めてだと知っています.
確かに方法によって実現されているので、利便性の面では良いです.
while文とindexOfの使用
最小の数が複数あると仮定すると、それを外します.
4番目のリストで、最初の答えを[-1]として作成します.リストが空の場合
空になっていない場合は、リストを配列に戻します.
問題は私たちが成功したことだ.
処理時間はケースによって異なりますが、1番コードよりほぼ遅いです.
コレクションを正しく利用する方法がまだ分からないからですか?
集合と集合の方法を使うことで、
不必要な動作が起こったからですか?
答えは二つとも
😳❕ 感想&感想
私もこの問題はそんなに難しくないと思いますが.
アルゴリズムの問題を解くたびに反省するようだ.
コレクションについて1、2回書きます.
錯覚に恥じる.
もしあなたが本当に知って書くことができたら、2番のコードを実現しながら
より高速な処理速度とより簡潔な符号化が可能になります.
1、2ヶ月Javaを習いましたが、
私は今データベースとネットワークを勉強しています.
これらの予習、復習は忙しくて、ジャワさえ見られないでしょう.
ジャワの代価を学ぶのに時間がかかった.
アルゴリズムの問題を解くのに十分な練習をしたようだ.
ジャワについてまだ知らないことが多すぎるようです.
だから今学んだことが多いからといって、怠け者になってはいけない.
もう少し睡眠時間を減らしても、アルゴリズムの解を続けます.
再び足りないところを見て、
自分の知っている部分をもっと深く理解しなければならない.
Reference
この問題について([プログラマアルゴリズム]最小の数を削除), 我々は、より多くの情報をここで見つけました https://velog.io/@sukqbe/프로그래머스-알고리즘-제일-작은-수-제거하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol