スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

JAVAプログラミングのリハビリがてら

新人女子プログラマの書いたコードを直すだけの簡単なお仕事です!|
paizaオンラインハッカソンVol.1
https://paiza.jp/poh/ec-campaign

JAVAのリハビリついでに組んでみた

----------------------------------
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

public class ChkSumMoney {
public static void main(String[] args) throws IOException {
BufferedReader br = null;
String list;
int sSumMoney = 0;

//設定金額取得(pathでファイル指定)
File file = new File(path);
br = new BufferedReader(
new InputStreamReader(
new FileInputStream(file) , "SJIS"));
list=br.readLine();
sSumMoney = Integer.parseInt(list);
System.out.println("設定金額:"+sSumMoney);


//一度初期化
br = null;
list = null;

//商品金額リスト取込(pathでファイル指定・タブ区切り)
file = new File(path);
br = new BufferedReader(
new InputStreamReader(
new FileInputStream(file) , "SJIS"));
list=br.readLine();

String[] str = list.split("\t");
//数値型し配列に挿入
System.out.println("======商品金額リスト=====");
ArrayList moneyListArr = new ArrayList();
for(int i=0;i moneyListArr.add(Integer.parseInt(str[i]));
System.out.println(str[i]);
}
System.out.println("==================");
Collections.sort(moneyListArr);
Collections.reverse(moneyListArr);

//合計金額チェック
int[] resList = {0,0,0};
ArrayList cloneMoneyListArr = moneyListArr;
Iterator ite = moneyListArr.iterator();
for(int i=0;i int base = (Integer)ite.next();
//取り出した金額以降の数字を取得し、合計値を算出
for(int j=i+1;j int sub = cloneMoneyListArr.get(j);
int sum = base + sub;
//降順にソート済みなので、最初に設定金額以下になった合計値が近似値
if(sSumMoney >= sum){
//退避値と比較
if(resList[0] < sum){
resList[0] = sum;
resList[1] = base;
resList[2] = sub;
}
break;
}
}
}

System.out.println("========RESULT=======");
System.out.println("金額:"+resList[0]);
System.out.println("商品1:"+resList[1]);
System.out.println("商品2:"+resList[2]);
}
}



------------------------------------
結果
------------------------------------

設定金額:600
======商品金額リスト=====
10
100
1000
500
20
1
==================
========RESULT=======
金額:600
商品1:500
商品2:100



走査値をファイル読み込みにしている分遅くなったけどそこそこ悪くないソースになったんじゃないかな!
FOR文の中にFOR文とか書いておいてそれはないんじゃないかな!
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

プロフィール

サク

Author:サク
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。