2016年10月15日 星期六

[ST22-易] Binary Conversion

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=975

這題二進為字串轉時進位數字直接利用Integer.parseInt( " 二進為字串 " , 2 );

2016年10月13日 星期四

[C_AR190-易] 矩陣元素共同交集

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=29925

這題就依序去尋找看看有沒交集的數,並丟入ArrayList中(因為最後要排序且不知容器有多大)
排序的語法是Collections.sort( )
注意在ITSA中ArrayList並不能簡略打法要遵循
ArrayList<Integer> list = new ArrayList<Integer> =>不能<>

2016年10月12日 星期三

[C_SO07-] 找出不合群的人

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=2277

這題就按照題意找出outlier,注意題目範例輸出第二個有誤事排序後去比較另外每個資料只空一行而已
Q1的位置= n × 0.25
Q2的位置= n × 0.5
Q3的位置= n × 0.75

Input:
7.0 4.0 5.0 4.0 100.0 2.0 8.0 9.0 -100.0
Output:
The outlier is -100.0

The outlier is 100.0

[C_AR80-中] 聖經密碼

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=7051

這題就把二維陣列轉乘一維方式讀取,作法是先把所有字串放入字元陣列中,再來用字串切割把讀進來的數字字串split(" , "),最後迴圈兩兩一組 i*10+(i+1) 就可以調出一開始創的陣列字元了
A[i,j] =  (i × n )j

[C_AR83-中] 字元出現次數

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=7898

這題我是用快速寫法缺點是造成稀疏矩陣浪費記憶體,簡單來說就是利用ASCii來當每個字母索引值(大小寫分開)
題目給的測資有空白行別管他

[C_AR63-易] 矩陣相加

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=3535

這題很簡單就只是單純的矩陣相加

2016年10月11日 星期二

Q12195 : Jingle Composing

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3347

這題就利用判斷式把每節內容相加最後看是不是1就好了

[C_ST62-易] 縮寫很方便

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=6419

這題很簡單直接字串分割最後再依序判斷第一個字母是否為ASCii小於於97=>a,若是的話印出

Q12694: Meeting Room Arrangement

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4432

2016 10/05 CPE第五題 這題的方法是先以結束時間為基準做排序(氣泡排序),再來進入迴圈一個一個去比開始時間有沒有比t大,若有t改成結束時間count++
第一個打法式二維陣列,第二種是結構化打法

2016年10月10日 星期一

[C_AR191-易] 巴斯卡三角形

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=15389

帕斯卡三角形就是算排列組合C幾取幾,利用公式算出每個位置數字

Q:10415 - Eb Alto Saxophone Player

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1356

這題是2016 10/06 CPE題目 我的解法是先把14個按鍵方法先存入陣列中(arr)再建立一個整數陣列把按鈕轉換成配對arr的索引值 例如hash['c']=0(c紐就配對arr[0])
最後就是一個字一個字讀取並且依序檢查是否有按過 案過之後state[]=1反之
if (ary[j] == '1' && state[j] == 0) {
ans[j]++;
state[j] = 1;
}
if (ary[j] == '0')

state[j] = 0;

2016年10月9日 星期日

Q:11192 - Group Reverse

https://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=2133

這題是2016 10/04 CPE第一題,第一個數字是要把字串切割成幾等分,內迴圈從後面讀取印出來

[C_CH13-中] 坑洞路面

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=2078

這題先依序找出最大值放入陣列arr_large,另外再從尾找出最大值 和arr_large比看誰最小減去目前的坑洞高
若結果小於0就不做相加到ans反之

Q:11344 - The Huge One

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2319

這題是2016 10/04 CPE第四題 利用大數去判斷是有整除就好了
另外除數是0時直接跳出迴圈Wonder
ful  num.equals(new BigInteger("0"))  這裡也可以用compareTo去比對
還有每組資料第二行的第一個數字是接下來有多少個數字並不是被除數

2016年10月8日 星期六

[C_SO15-易] 逆序與奇/偶排列

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=8204

這題必須先排序後再做比對逆序數量

[C_AR143-易] 轉換英文字母到數字

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=24061

這題非常簡單把字串拆開成字元陣列再把每個字元-'a'就是答案要的數字了

[C_AR142-易] 陣列存多少?

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=24058

為了避免超時利用動態規劃先把1~100次方建立起來之後再去判斷相加

ITSA 第46次月賽 Problem 4 貧富不均

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=29454

這題用由大至小排序後做比較好做,無條件進位要用ceil方法不過要強制轉型成(int)內部數字要浮點數

ITSA 第48次月賽 [Problem 4] 字串轉換成浮點數

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=31398

這題可能有空白所以要先把所有空白去掉,最後放入BigDecimal再toPlainString把科學記號的完整數字印出來

2016年10月7日 星期五

ITSA 第49次月賽 Problem2. 時間表示轉換

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=17017

這題很簡單一天有86400秒一小時3600秒一分鐘60秒下去除
最後印出%02d 就能顯示數位數字了

ITSA 第49次月賽 Problem4. 跳舞的小人

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=32660

這題我的作法是從尾巴讀取是否有遇到數字若有把數字存起來反之加上位移數(ps.數字也可能2位數)
這題還要考慮字母溢位 所以必須
if(tot > 'Z'){
     tot=tot % 'Z' + 'A' -1 ;
}
因為是從最後開始讀取所以先append進字串,最後再reverse出來

範例測資
input
1
A B C 13 D E 2 X Y Z 20
output

NOPFGRST

[C_MM148-易] 三位數字摸彩

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=7022

這題先讀入字串再利用split做字串切割數字,最後再放入int型態的陣列做sort排序
最後利用迴圈印出後3個最大數(3個迴圈)

[C_MM106-易] 求質數問題

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=1292

檢查質數最簡單的方法就是從2~n-1一個一個去判斷是否整除,題目是求範圍內最大的質數那我們就依序遞減判斷

2016年10月5日 星期三

2016年10月3日 星期一

Q490: Rotating Sentences

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=431


這題純粹是字串翻轉不過需要一些小技巧才會AC,簡單來說就是把每個字串讀入二維陣列,每次存入之前檢查字數是否為該行最大值,最後翻轉印出來,這裡要確認當該列數小於最大值時要印出空白不然會拋出例外