import java.util.LinkedList;
import java.util.List;
/*
* ScoreUnion.java
*
* Created on 2006년 10월 10일 (화), 오후 6:27
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
/**
*
* @author 강웅빈
*/
public class ScoreUnion {
public LinkedList<Score> getUnion(final List<Score> sortedListA, final List<Score> sortedListB) {
final LinkedList<Score> result = new LinkedList<Score>();
for(Score score: sortedListA) {
result.add(new Score(score.did, score.score));
}
int lastAidx = 0;
for(int ix=0; ix<sortedListB.size(); ix++) {
final Score bScore = sortedListB.get(ix);
final int curDid = bScore.did;
final int curScore = bScore.score;
for(;lastAidx < result.size();lastAidx++) {
final Score aScoreObj = result.get(lastAidx);
final int aDid = aScoreObj.did;
final int aScore = aScoreObj.score;
if(aDid < curDid) {
continue;
} else if(aDid == curDid) {
result.get(lastAidx).score = aScore + curScore;
break;
} else {
result.add(lastAidx, bScore);
break;
}
}
}
return result;
}
public static void main(String args[]) {
LinkedList<Score> a = new LinkedList<Score>();
LinkedList<Score> b = new LinkedList<Score>();
a.add(new Score(1, 5));
a.add(new Score(5, 8));
a.add(new Score(8, 2));
a.add(new Score(10, 3));
a.add(new Score(15, 1));
b.add(new Score(1, 2));
b.add(new Score(6, 1));
b.add(new Score(10, 3));
b.add(new Score(18, 5));
b.add(new Score(21, 7));
ScoreUnion test = new ScoreUnion();
List<Score> result = test.getUnion(a, b);
for(Score scr: result) {
System.out.println("[" + scr.did + "," + scr.score + "]" );
}
}
//class Score
/*
* Score.java
*
* Created on 2006년 10월 10일 (화), 오후 6:26
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
/**
*
* @author 강웅빈
*/
public class Score {
public Score(int d, int s) {
did = d;
score = s;
}
public int did;
public int score;
import java.util.LinkedList; import java.util.List; /* * ScoreUnion.java * * Created on 2006년 10월 10일 (화), 오후 6:27 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ /** * * @author 강웅빈 */ public class ScoreUnion { public LinkedList<Score> getUnion(final List<Score> sortedListA, final List<Score> sortedListB) { final LinkedList<Score> result = new LinkedList<Score>(); for(Score score: sortedListA) { result.add(new Score(score.did, score.score)); } int lastAidx = 0; for(int ix=0; ix<sortedListB.size(); ix++) { final Score bScore = sortedListB.get(ix); final int curDid = bScore.did; final int curScore = bScore.score; for(;lastAidx < result.size();lastAidx++) { final Score aScoreObj = result.get(lastAidx); final int aDid = aScoreObj.did; final int aScore = aScoreObj.score; if(aDid < curDid) { continue; } else if(aDid == curDid) { result.get(lastAidx).score = aScore + curScore; break; } else { result.add(lastAidx, bScore); break; } } } return result; } public static void main(String args[]) { LinkedList<Score> a = new LinkedList<Score>(); LinkedList<Score> b = new LinkedList<Score>(); a.add(new Score(1, 5)); a.add(new Score(5, 8)); a.add(new Score(8, 2)); a.add(new Score(10, 3)); a.add(new Score(15, 1)); b.add(new Score(1, 2)); b.add(new Score(6, 1)); b.add(new Score(10, 3)); b.add(new Score(18, 5)); b.add(new Score(21, 7)); ScoreUnion test = new ScoreUnion(); List<Score> result = test.getUnion(a, b); for(Score scr: result) { System.out.println("[" + scr.did + "," + scr.score + "]" ); } }//class Score /* * Score.java * * Created on 2006년 10월 10일 (화), 오후 6:26 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ /** * * @author 강웅빈 */ public class Score { public Score(int d, int s) { did = d; score = s; } public int did; public int score;Recent Posts
Archive Posts
Tags