目录
正在加载目录...

台積電OA | TSMC OA台積電算灋筆試 三題輕鬆搞定分享思路

最近有幸接觸到台積電OA(TSMC)的線上測驗(OA)真題,這些題目不僅考察了演算灋的基礎,還需要一定的優化技巧。 今天,我將和大家分享這些題目的解題思路,希望對準備面試的朋友有所幫助。 台積電OA 是三題Coding,難度一般為MMM,有時難度可能為MMH,一般最低通過2.5題才有機會進入面試。

台積電OA 分享

Question 1

解题思路:這題思路是固定一個緩存大小後,按請求順序類比緩存內容:命中就計數並更新位置,未命中就在滿的時候删掉最早加入的元素。 因為緩存越大命中次數只會不减,所以可以用二分查找緩存大小,每次用一次線性類比判斷能不能達到k次命中,從而找到最小可行值。

代码

from collections import OrderedDict as OD
def getMinimumSize(requests,k):
    n=len(requests)
    def h(c):
        od=OD()
        cnt=0
        for x in requests:
            if x in od:
                cnt+=1
                od.move_to_end(x)
            else:
                if len(od)==c:
                    if c>0:
                        od.popitem(last=False)
                od[x]=None
        return cnt
    if h(n)<k:
        return -1
    lo=1; hi=n; ans=-1
    while lo<=hi:
        mid=(lo+hi)//2
        if h(mid)>=k:
            ans=mid
            hi=mid-1
        else:
            lo=mid+1
return ans

Question 2

台積電OA 题2

解题思路:像修剪路边的树枝一样,拿着指针从头开始捋,碰到大于x的节点就直接把它“剪掉”,让前面的节点跳过去指向下一个,唯一要注意的是如果开头几个节点就超标了,得先把“头”挪到第一个合格的节点上。

代码

def removeNodes(listHead, x):
    h = listHead
    while h and h.data > x: h = h.next
    c = h
    while c and c.next:
        if c.next.data > x: c.next = c.next.next
        else: c = c.next
    return h

Question 3

解题思路:把 y的所有连续片段拿出来看,利用预处理好的x字符坐标进行“跳格搜索”,在不破坏顺序的前提下,看 x里的字符能不能像拼图一样把y的某一段给凑出来,最后算出能凑出的最长长度就行了。

代码

from bisect import bisect_right as br

def longestSubsequence(x, y):
    d = [[] for _ in range(128)]
    for i, c in enumerate(x):
        d[ord(c)].append(i)
        
    res = 0
    ly = len(y)
    
    for i in range(ly):
        p = -1 
        for j in range(i, ly):
            l = d[ord(y[j])]
            k = br(l, p)
            
            if k < len(l):
                p = l[k]
                res = max(res, j - i + 1)
            else:
                break
            
    return res

台積電職等與薪資架構

  • 職等 31(碩士剛畢業)
    目前起薪約 6 萬多(我那時候才 4 萬多啊⋯)
  • 職等 33(博士剛畢業)
  • 職等 34(副理)
    34 就是管理職候選人,或是開始帶人了
  • 職等 35(經理)
    據說 26 年年薪能逼近 千萬

大家最關心的「年薪總包」

  • 第一年6 萬多 × 14 個月 + 2 次季分紅 + 加給 + 加班費,👉 約 150–170 萬
  • 第二年完整分紅入袋,👉 約 200–230 萬
  • 第三年穩定後,👉 250 萬以上
  • 目前 35 歲的朋友們,多數在職等 33,少數 32、34,👉 年薪約 350–600 萬

分紅制度

台積電的分紅多寡,依照 當年盈餘 決定,同時也與 考績直接掛鉤。以目前台積電的統治地位來看,分紅大概率 逐年遞增

發放方式(延後發放)

固定年終:2 個月本薪

季度分紅(分兩半)2 / 5 / 8 / 11 月:各領取「前一季分紅的 50%」,每年 7 月:一次領取「去年四個季度累積的另外 50%」

⚠️ 如果提前離職,7 月這筆分紅就領不到,7 月這筆分紅通常都是 百萬起跳,

招募門檻

以前:主要台清交成,但仍需面試,現在:四所畢業幾乎必收,四中以及其他私立學校也錄取不少,工時每天 12 小時是基本,晚上10 點下班是常態,On-call週末菜鳥要輪流排班,電話一響就要回廠救火。

台積電的這幾道 OA 題目不僅考察了基本的演算法知識,還需要一定的優化技巧,希望這些解析能幫助到準備面試的朋友們。加油,祝大家面試順利!

我們提供OA辅助、面試輔助等服務,無論是北美大廠,還是台灣本土的企業,我們都有順利幫助候選人入職的經驗與能力。希望這篇文章能幫助到正在準備的朋友們,如果有任何需要協助的地方,歡迎隨時聯繫我們。祝大家面試順利,早日拿到心儀的Offer!

正文完