|
구글 코드잼도 놓치고 나니 아쉬워서... 나도 참 할 일 없다... 그나저나 이노무 카페 게시판은 코드 정렬할 방법없나? 명색이 컴퓨터공학과 축구부인데 코드도 못 올리고..
/******************************************************************************/
/* I dedicate all this code to my milk-color Eunjeong goddess. */
/******************************************************************************/
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Scanner;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
class Round {
float percent;
int total, pass;
public String toString() {
return String.format("%6.2f", percent) + "%("+
String.format("%4d", pass) + "/" +
String.format("%5d", total) + ")";
}
public String toString2() {
return String.format("%6.2f", percent) + "% ";
}
}
class Language {
String name = null;
Round[] rounds = new Round[6];
Language(String s) {
name = s;
for(int i=0; i<6; i++) rounds[i] = new Round();
}
public String toString() {
String ret = String.format("%12s", name);
for(int i=0; i<6; i++) {
ret += " " + rounds[i];
}
return ret;
}
public String toString2() {
String ret = String.format("%12s", name);
for(int i=0; i<6; i++) {
ret += " " + rounds[i].toString2();
}
return ret;
}
public void setRound(int n, int pass, int total) {
rounds[n].total = total;
rounds[n].pass = pass;
rounds[n].percent = 100*(float)pass/(float)total;
}
}
class CodeJamSta {
static ArrayList<Language> langs = new ArrayList<Language>();
static String url2String(String url) {
String content = null;
URLConnection connection = null;
try {
connection = new URL(url).openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/4.76");
Scanner scanner = new Scanner(connection.getInputStream());
scanner.useDelimiter("\\Z");
content = scanner.next();
} catch (Exception e) {
System.out.println("Your network is suck!");
}
return content;
}
static int existLang(String s) {
for(int i=0, in=langs.size(); i<in; i++)
if(langs.get(i).name.equals(s) == true) return i;
return langs.size();
}
static String exNum(String s) {
int start = 0;
int n = s.length();
for(; start<n; start++) {
char c = s.charAt(start);
if(c > 47 && c < 58) {
break;
}
}
if(start == n) return null;
int end = start;
for(; end < n; end++) {
char c = s.charAt(end);
if(c <= 47 || c >= 58) {
break;
}
}
return s.substring(start, end);
}
static void add(String name, int index, String totalPass) {
int li = existLang(name);
String sT = exNum(totalPass);
String sP = exNum(totalPass.substring(sT.length(),
totalPass.length()));
int pass;
if (sP == null) pass = 0;
else pass = Integer.valueOf(sP);
if (li == langs.size()) {
int k=0;
for(int kn=langs.size(); k < kn; k++) {
if(langs.get(k).rounds[0].pass < pass) break;
}
langs.add(k, new Language(name));
li = k;
}
langs.get(li).setRound(index, pass, Integer.valueOf(sT));
}
public static void main(String[] argc) {
System.out.print("Be patient");
for(int i=0; i<6; i++) {
System.out.print(".");
Document doc = Jsoup.parse(
url2String("http://www.go-hero.net/jam/10/languages/"+i));
add("Total", i, doc.select("th").last().text());
Elements names = doc.select("a[href^=./lang/]");
Elements numbers = doc.select("td");
for(int j=0, jn=names.size();j<jn;j++) {
String totalPass = null;
if(i < 4) totalPass = numbers.get((j+1)*9-1).text();
else totalPass = numbers.get((j+1)*11-1).text();
add(names.get(j).html(), i, totalPass);
}
}
System.out.println("\n Language Qualifier" +
" Round 1A " +
" Round 1B " +
" Round 1C " +
" Round 2 " +
" Round 3");
for(int i=0, in=langs.size();i<in;i++)
System.out.println(langs.get(i));
System.out.println("\n Language Qualifi Round 1A Round 1B " +
"Round 1C Round 2 Round 3");
for(int i=0, in=langs.size();i<in;i++)
System.out.println(langs.get(i).toString2());
}
}
출력 결과
Be patient......
Language Qualifier Round 1A Round 1B Round 1C Round 2 Round 3
Total 81.51%(8308/10192) 46.40%(1000/ 2155) 31.86%(1000/ 3139) 33.27%(1000/ 3006) 25.19%( 500/ 1985) 6.76%( 25/ 370)
C++ 88.07%(4325/ 4911) 55.93%( 731/ 1307) 42.16%( 632/ 1499) 36.01%( 557/ 1547) 29.27%( 413/ 1411) 6.25%( 19/ 304)
Java 80.70%(2229/ 2762) 34.84%( 123/ 353) 22.82%( 160/ 701) 26.06%( 148/ 568) 20.99%( 51/ 243) 11.36%( 5/ 44)
Python 84.78%(1237/ 1459) 32.42%( 71/ 219) 29.84%( 148/ 496) 40.33%( 148/ 367) 9.46%( 14/ 148) 12.50%( 1/ 8)
C 73.90%( 555/ 751) 39.13%( 27/ 69) 23.68%( 18/ 76) 25.49%( 39/ 153) 13.46%( 7/ 52) 0.00%( 0/ 4)
C# 75.46%( 489/ 648) 27.47%( 25/ 91) 26.03%( 57/ 219) 30.95%( 52/ 168) 13.64%( 9/ 66) 0.00%( 0/ 7)
Ruby 78.73%( 174/ 221) 33.33%( 8/ 24) 20.34%( 12/ 59) 37.74%( 20/ 53) 9.09%( 1/ 11) 0.00%( 0/ 1)
Haskell 92.37%( 109/ 118) 39.13%( 9/ 23) 33.33%( 13/ 39) 42.31%( 11/ 26) 27.78%( 5/ 18) 0.00%( 0/ 4)
Perl 73.97%( 108/ 146) 21.05%( 4/ 19) 19.05%( 8/ 42) 19.23%( 5/ 26) 0.00%( 0/ 7) 0.00%( 0/ 0)
PHP 61.76%( 105/ 170) 18.18%( 2/ 11) 21.43%( 9/ 42) 14.29%( 5/ 35) 0.00%( 0/ 5) 0.00%( 0/ 0)
Pascal 88.42%( 84/ 95) 50.00%( 13/ 26) 34.62%( 9/ 26) 64.10%( 25/ 39) 21.43%( 9/ 42) 33.33%( 1/ 3)
Visual Basic 76.09%( 35/ 46) 0.00%( 0/ 6) 11.11%( 1/ 9) 23.08%( 3/ 13) 0.00%( 0/ 1) 0.00%( 0/ 0)
Scheme 100.00%( 18/ 18) 0.00%( 0/ 3) 0.00%( 0/ 4) 33.33%( 1/ 3) 0.00%( 0/ 0) 0.00%( 0/ 0)
Lisp 85.00%( 17/ 20) 50.00%( 1/ 2) 42.86%( 3/ 7) 0.00%( 0/ 3) 0.00%( 0/ 4) 0.00%( 0/ 0)
OCaml 85.00%( 17/ 20) 66.67%( 2/ 3) 20.00%( 1/ 5) 50.00%( 2/ 4) 25.00%( 1/ 4) 0.00%( 0/ 1)
Scala 73.68%( 14/ 19) 33.33%( 2/ 6) 14.29%( 1/ 7) 25.00%( 1/ 4) 0.00%( 0/ 1) 0.00%( 0/ 0)
MATLAB 68.75%( 11/ 16) 0.00%( 0/ 3) 0.00%( 0/ 1) 0.00%( 0/ 3) 0.00%( 0/ 0) 0.00%( 0/ 0)
xxxxJavascript 66.67%( 10/ 15) 0.00%( 0/ 2) 0.00%( 0/ 1) 0.00%( 0/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0)
Shell 100.00%( 10/ 10) 100.00%( 1/ 1) 20.00%( 1/ 5) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Clojure 88.89%( 8/ 9) 100.00%( 2/ 2) 0.00%( 0/ 1) 0.00%( 0/ 3) 0.00%( 0/ 2) 0.00%( 0/ 0)
GO 85.71%( 6/ 7) 100.00%( 1/ 1) 33.33%( 1/ 3) 100.00%( 1/ 1) 0.00%( 0/ 1) 0.00%( 0/ 0)
Lua 66.67%( 6/ 9) 0.00%( 0/ 0) 50.00%( 1/ 2) 0.00%( 0/ 0) 100.00%( 1/ 1) 0.00%( 0/ 1)
Objective-C 85.71%( 6/ 7) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 100.00%( 1/ 1) 0.00%( 0/ 0)
Groovy 83.33%( 5/ 6) 0.00%( 0/ 1) 0.00%( 0/ 2) 0.00%( 0/ 3) 0.00%( 0/ 0) 0.00%( 0/ 0)
bc 100.00%( 5/ 5) 0.00%( 0/ 0) 0.00%( 0/ 0) 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0)
F# 100.00%( 4/ 4) 50.00%( 1/ 2) 25.00%( 1/ 4) 50.00%( 1/ 2) 0.00%( 0/ 1) 0.00%( 0/ 0)
ActionScript 100.00%( 4/ 4) 0.00%( 0/ 0) 50.00%( 1/ 2) 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0)
AWK 100.00%( 4/ 4) 0.00%( 0/ 0) 0.00%( 0/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Erlang 100.00%( 3/ 3) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 2) 0.00%( 0/ 0) 0.00%( 0/ 0)
PostScript 100.00%( 3/ 3) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Prolog 100.00%( 3/ 3) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
D 100.00%( 2/ 2) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0)
J 100.00%( 2/ 2) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
LOLCODE 100.00%( 2/ 2) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
ODS 100.00%( 2/ 2) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Piet 100.00%( 2/ 2) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
R 66.67%( 2/ 3) 0.00%( 0/ 0) 0.00%( 0/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Smalltalk 100.00%( 2/ 2) 0.00%( 0/ 0) 0.00%( 0/ 1) 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0)
SQL 100.00%( 2/ 2) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Ada 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0)
Alice 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Assembly 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Basic 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Claire 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
COBOL 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Factor 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
FALSE 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Fortran 50.00%( 1/ 2) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
FRACTRAN 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Golfscript 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Maple 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Mercury 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Octave 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
PARI/GP 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
sed 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
SNOBOL 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Standard ML 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
TCL 100.00%( 1/ 1) 0.00%( 0/ 0) 50.00%( 1/ 2) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
WRAPL 100.00%( 1/ 1) 0.00%( 0/ 0) 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 1) 0.00%( 0/ 0)
XQuery 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Whitespace 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 100.00%( 1/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0)
Rexx 0.00%( 0/ 0) 0.00%( 0/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Starx 0.00%( 0/ 0) 0.00%( 0/ 1) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0) 0.00%( 0/ 0)
Language Qualifi Round 1A Round 1B Round 1C Round 2 Round 3
Total 81.51% 46.40% 31.86% 33.27% 25.19% 6.76%
C++ 88.07% 55.93% 42.16% 36.01% 29.27% 6.25%
Java 80.70% 34.84% 22.82% 26.06% 20.99% 11.36%
Python 84.78% 32.42% 29.84% 40.33% 9.46% 12.50%
C 73.90% 39.13% 23.68% 25.49% 13.46% 0.00%
C# 75.46% 27.47% 26.03% 30.95% 13.64% 0.00%
Ruby 78.73% 33.33% 20.34% 37.74% 9.09% 0.00%
Haskell 92.37% 39.13% 33.33% 42.31% 27.78% 0.00%
Perl 73.97% 21.05% 19.05% 19.23% 0.00% 0.00%
PHP 61.76% 18.18% 21.43% 14.29% 0.00% 0.00%
Pascal 88.42% 50.00% 34.62% 64.10% 21.43% 33.33%
Visual Basic 76.09% 0.00% 11.11% 23.08% 0.00% 0.00%
Scheme 100.00% 0.00% 0.00% 33.33% 0.00% 0.00%
Lisp 85.00% 50.00% 42.86% 0.00% 0.00% 0.00%
OCaml 85.00% 66.67% 20.00% 50.00% 25.00% 0.00%
Scala 73.68% 33.33% 14.29% 25.00% 0.00% 0.00%
MATLAB 68.75% 0.00% 0.00% 0.00% 0.00% 0.00%
xxxxJavascript 66.67% 0.00% 0.00% 0.00% 0.00% 0.00%
Shell 100.00% 100.00% 20.00% 0.00% 0.00% 0.00%
Clojure 88.89% 100.00% 0.00% 0.00% 0.00% 0.00%
GO 85.71% 100.00% 33.33% 100.00% 0.00% 0.00%
Lua 66.67% 0.00% 50.00% 0.00% 100.00% 0.00%
Objective-C 85.71% 0.00% 0.00% 0.00% 100.00% 0.00%
Groovy 83.33% 0.00% 0.00% 0.00% 0.00% 0.00%
bc 100.00% 0.00% 0.00% 100.00% 0.00% 0.00%
F# 100.00% 50.00% 25.00% 50.00% 0.00% 0.00%
ActionScript 100.00% 0.00% 50.00% 100.00% 0.00% 0.00%
AWK 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Erlang 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
PostScript 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Prolog 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
D 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
J 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
LOLCODE 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
ODS 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Piet 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
R 66.67% 0.00% 0.00% 0.00% 0.00% 0.00%
Smalltalk 100.00% 0.00% 0.00% 100.00% 0.00% 0.00%
SQL 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Ada 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Alice 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Assembly 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Basic 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Claire 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
COBOL 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Factor 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
FALSE 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Fortran 50.00% 0.00% 0.00% 0.00% 0.00% 0.00%
FRACTRAN 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Golfscript 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Maple 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Mercury 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Octave 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
PARI/GP 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
sed 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
SNOBOL 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Standard ML 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
TCL 100.00% 0.00% 50.00% 0.00% 0.00% 0.00%
WRAPL 100.00% 0.00% 100.00% 0.00% 0.00% 0.00%
XQuery 100.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Whitespace 0.00% 0.00% 0.00% 100.00% 0.00% 0.00%
Rexx 0.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Starx 0.00% 0.00% 0.00% 0.00% 0.00% 0.00%
첫댓글 0_0;;눈이 뿅뿅...;;
정렬이라도 되면 깔끔할텐데... ㅡㅜ
동우야 해석해
코드정렬만 잘되어있으면 금방해요형 ㅋ 이거원 코드정렬때매 분석이 쉽지않군요..