顯示具有 ITSA 標籤的文章。 顯示所有文章
顯示具有 ITSA 標籤的文章。 顯示所有文章

2018年3月28日 星期三

[C_ST49-易] 字串取代

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


這題直接用JAVA的(replaceAll)將單字做取代替換就行了

[C_ST35-易] 抱怨值問題

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


一開始寫完交出去結果回傳1,仔細看題目發現原來數字間除了逗號外還可能包含多個空白!
所以解婕辦法是先將所有的空白用(replaceAll)取代空字串,最後再用(split)來切逗號數字,這題是找目前數字之前有幾個比自己還大,所以利用O(n2)方式下去搜。

[C_ST38-中] 字數統計

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

題目有說道要去除標點符號,所以利用字串取代(replaceAll)將遇到的標點符號改為空字串,之後再使用字串切割(split)將字串切成陣列,最後在陣列走訪依序的計算每個單字的數量,比對單字是否存在時可以統一將單字轉成小寫(toLowerCase)

2017年10月17日 星期二

ITSA第58次月賽 Problem 3. 完整二元樹

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

這題不要看到是樹就想得很害怕又複雜,其實他一點跟樹的演算法都無關仔細看看可以發現規律並用簡單數學就能推出答案囉!


ITSA第58次月賽 Problem 2. 道路修補

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


這題有兩種做法第一種最直覺建立長度10000的陣列把需要修補的道路依序塞入數值,另外找出裡面數值最大的數最後算修補的道路就從0~amx就好囉
第二種方法就是利用java中的set容器囉,他會自動地把重複數字砍掉最後算set的總長度就是答案囉!

ITSA第58次月賽 Problem 1. 計算正整數被3整除之數值之總和

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


這題可以用模擬的方式單迴圈每次+3依序把整除數相加就是答案了

2017年6月13日 星期二

[C_AR154-易] 感染被包圍的人

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

這題思考一下只要沾到邊是0的就表示不會感染

範例1
輸入:
X X X X X X X
X X X X X X X
X X X X X X X
X X X X X X X
X X X X X X X
X X 0 0 X X X
X X 0 X X X X
輸出:
X X X X X X X
X X X X X X X
X X X X X X X
X X X X X X X
X X X X X X X
X X 0 0 X X X
X X 0 X X X X

範例2
輸入:
X X X X X X X
X X X X X X X
X X X X X X X
X X 0 0 0 0 0
X X X X X X X
X X X X X X X
X X X X X X X
輸出:
X X X X X X X
X X X X X X X
X X X X X X X
X X 0 0 0 0 0
X X X X X X X
X X X X X X X
X X X X X X X

範例3
輸入:
X X X X 0 X X
0 0 0 X 0 X X
X X 0 0 X 0 X
X X X X X X X
X X X X X X X
X 0 0 0 0 0 X
X X X 0 X X X
輸出:
X X X X 0 X X
0 0 0 X 0 X X
X X 0 0 X I X
X X X X X X X
X X X X X X X
X 0 0 0 0 0 X
X X X 0 X X X


[C_AR201-易] 城市地圖

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


這題就往陣列去想把左邊起點和右邊起點想像成一個一為陣列的範圍
在這之中先把陣列大小找出來max
最後依序把範圍內的值若大於原本的舊覆蓋過去
arr[ 12 ]
0~8=>5
6~8=>10
10~12=>10
5 5 5 5 5 5 10 10 10 0 10 10 10

2017年5月6日 星期六

[C_SO42-易] 宵夜

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


這題是考智力測驗= ( 網路搜尋提燈龍過河或是傳教士與食人族過河都是很經典的題目
這題考法也類似,若以很直覺的每次跟最小權重過去勢必不是最佳解,如下圖:

切記前提記得要排序,而且若單純case1下去做也不一定是最佳解
ex:
    1  98  99  100
這時要以case2下去做,也就是最直覺方法才是最佳解

2017年4月10日 星期一

[C_AR151-易] 井字遊戲判斷

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


這題就是把八種連線可能方式一一去檢查,若完全無則輸出There is no line with all ?
(?為該數)

[C_AR130-易] 拉彩金

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


這題陣列走訪,取得最少時間複雜度用單迴圈就行了,每走訪一個就加到sum,並每次判斷sum是否小於0若成立歸零Math.max()就是比較大小函式,比對確認後最後再比目前最大的數字並存入max_sum

2017年4月9日 星期日

[C_MM246-易] 矩陣反轉

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


這題矩陣反轉就是建立二維陣列下去實作,輸入時索引值顛倒

[C_SO37-易] 不誠實不給獎

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


這題就是找出前兩名必須要90分以上若無就x注意以下測資
3
98 97 97
必須要輸出
98
x
所以要有一個計數器count紀錄印出幾個了

2017年4月8日 星期六

[C_SO45-易] 混合數列

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


這題就依序地將3與4的次方數1~25算出來存入陣列中(題目設定最大50代表各25個次方)
最後一定要再做排序

[C_ST22-易] 迴文字串 II

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


我第一種寫法是利用字串去實作並利用toCharArray然後在利用字串toUpperCase、toLowerCase系統竟然回傳值1
所以最後只好乖乖地用成字串陣列依序判斷翻轉,那一樣也是利用ASCII碼判斷大小寫
A~Z是65~90
a~z是97~122

[C_ST03-易] 萬國碼轉成對應字元

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


這題應該是ITSA所有題目程式碼最少行的題目吧...
這題很直覺的直接把獨到的整數用%c字元他就會自動轉成相對應的ASCII碼符號了

[C_MM261-易] 數字的出現次數

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

這題就是算有幾個8注意當800多時是例外每增加一個數字就加一