[アルゴリズム回答]プログラマーSweekleChallenge 8週間
6836 ワード
ここ数日もアルゴリズムを緩めて、問題を解いても位置決めをしません.ははは积み重ねの问题がたくさんあったので明らかにしていません...今日から出直すならそのままPostingを始めましょう!
今日は月曜日なので、新しく出た第8週問を解答しました.ああ、この問題は前にもやったのに...Weekly Challengeの質問はどこから来たのか・・・この問題はまだ位置決めをしているようで、私はこっそり位置決め書を見たが、見つからなかったので、やり直した.いずれにしても、WEEKLYチャレンジでチェックを入れておけば、心が楽になる人が・・・簡単な質問だったのでIDEも書かずに3分カットしました
名刺入れを作っている会社は財布の大きさを確認したいです.様々な形や大きさの名刺を収納でき、コンパクトで持ち運びに便利な財布を作る必要があります.これらの要件を満たすために、設計チームはすべての名刺の横方向と縦方向の長さを調査した.
次の表に、4種類の名刺の水平と垂直の長さを示します.
名刺番号横長160502307030603048040
最も長い横長と縦長はそれぞれ80と70であるため、80(横)x 70(縦)サイズの財布を作成すると、すべての名刺を収容することができる.ただし、横に2番の名刺を収納する場合は、80(横)x 50(縦)サイズの財布ですべての名刺を収納できます.財布のサイズは4000(=80 x 50)です.
パラメータは、すべての名刺の水平と垂直の長さを表す2 D配列サイズです.すべての名刺を収納できる最小財布を作成する場合は、財布の大きさを返すための解関数を完了します.
サイズの長さは1,000より大きい. sizeの要素は[w,h]形式です. wは名刺の横長を表す. hは名刺の縦の長さを表す. wおよびhは1000より大きい自然数である.
sizesresult[[60, 50], [30, 70], [60, 30], [80, 40]]4000[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]]120[[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]]133
名刺には横長、横長を決めてある.したがって,パラメータ入力の寸法では,各面の長さを比較することにより,長値と小値を別々に記憶する.次に横方向の値の最大値、縦方向の値の最大値を求め、2つの値を乗せればよい.
君は簡単すぎて、説明することはない.
今日は月曜日なので、新しく出た第8週問を解答しました.ああ、この問題は前にもやったのに...Weekly Challengeの質問はどこから来たのか・・・この問題はまだ位置決めをしているようで、私はこっそり位置決め書を見たが、見つからなかったので、やり直した.いずれにしても、WEEKLYチャレンジでチェックを入れておけば、心が楽になる人が・・・簡単な質問だったのでIDEも書かずに3分カットしました
問題の説明
名刺入れを作っている会社は財布の大きさを確認したいです.様々な形や大きさの名刺を収納でき、コンパクトで持ち運びに便利な財布を作る必要があります.これらの要件を満たすために、設計チームはすべての名刺の横方向と縦方向の長さを調査した.
次の表に、4種類の名刺の水平と垂直の長さを示します.
名刺番号横長160502307030603048040
最も長い横長と縦長はそれぞれ80と70であるため、80(横)x 70(縦)サイズの財布を作成すると、すべての名刺を収容することができる.ただし、横に2番の名刺を収納する場合は、80(横)x 50(縦)サイズの財布ですべての名刺を収納できます.財布のサイズは4000(=80 x 50)です.
パラメータは、すべての名刺の水平と垂直の長さを表す2 D配列サイズです.すべての名刺を収納できる最小財布を作成する場合は、財布の大きさを返すための解関数を完了します.
せいげんじょうけん
I/O例
sizesresult[[60, 50], [30, 70], [60, 30], [80, 40]]4000[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]]120[[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]]133
解答方法
名刺には横長、横長を決めてある.したがって,パラメータ入力の寸法では,各面の長さを比較することにより,長値と小値を別々に記憶する.次に横方向の値の最大値、縦方向の値の最大値を求め、2つの値を乗せればよい.
君は簡単すぎて、説明することはない.
コード#コード#
import java.util.*;
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
ArrayList<Integer> bigger = new ArrayList<>();
ArrayList<Integer> smaller = new ArrayList<>();
int big, small;
for(int[] size : sizes){
big = size[0];
small = size[1];
if(size[0] < size[1]){
small = size[0];
big = size[1];
}
bigger.add(big);
smaller.add(small);
}
big = Collections.max(bigger);
small = Collections.max(smaller);
answer = big*small;
return answer;
}
}
Reference
この問題について([アルゴリズム回答]プログラマーSweekleChallenge 8週間), 我々は、より多くの情報をここで見つけました https://velog.io/@cgw0519/알고리즘-문제풀이-프로그래머스-위클리챌린지-8주차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol