【APCS】m932. 2. 蜜蜂觀察 - Python 解 === 詳細資訊:https://zerojudge.tw/ShowProblem?problemid=m932 身為一個高中程式小白,上次在APCS考場中遇到這題,我瞬間懵了一下,雖說最後有解出來,但似乎我的答案並不是 AC。 註:這篇文章其實很早就寫完了,只不過現在才發XD。這篇文只是純粹因為解出我不會的題目,感到欣喜若狂,所以藉此分享。 以下是程式碼: ```python= import sys m, n, k = map(int, sys.stdin.readline().split()) mm, nn = m-1, n-1 mat = [list(input()) for _ in range(m)] step = [int(i) for i in input().split()] result = [] x, y = mm, 0 for i in range(k): if step[i] == 0: if x - 1 >= 0: x -= 1 result += mat[x][y] else: result += mat[x][y] elif step[i] == 1: if y + 1 <= nn: y += 1 result += mat[x][y] else: result += mat[x][y] elif step[i] == 2: if x + 1 <= mm and y + 1 <= nn: x += 1 y += 1 result += mat[x][y] else: result += mat[x][y] elif step[i] == 3: if x + 1 <= mm: x += 1 result += mat[x][y] else: result += mat[x][y] elif step[i] == 4: if y - 1 >= 0: y -= 1 result += mat[x][y] else: result += mat[x][y] elif step[i] == 5: if x - 1 >= 0 and y - 1 >= 0: x -= 1 y -= 1 result += mat[x][y] else: result += mat[x][y] print(''.join(result)) print(len(set(result))) ``` 雖然說並不是最簡潔的程式碼,也不是效率最高的,但能真正解出來真的讓我非常開心XD。 這題主要是在考「字元處理」、「邊界檢查」、「二維陣列」,算是每年 APCS 第二題的典例。