每年一到暑期實習招聘季,Goldman Sachs的 Summer Analyst Program 都是無數 CS / DS / Quant 專業學生的 dream offer。
不只是因為大廠光環,更多是因為——項目 exposure 大, 轉正率高, 校招外跳好跳。也正因如此,GS 的 OA 競爭超激烈,很多人提前幾個月就開始刷題、找人 mock。
下面是我們 Programhelp 協助的一位同學完整 OA 過程拆解,含題型回憶、實戰技巧和我們遠程無痕聯機協助細節,希望能幫你高效準備!

OA 流程 & 題型總覽
| 專案 | 說明 |
|---|---|
| 平臺 | HackerRank |
| 總時長 | 90 分鐘 |
| 題目數 | 2~3 道編程題 + 2 道數學/邏輯題 |
| 語言限制 | Java / Python / C++ / JS 等常見語言均可 |
| 題型分佈 | 數組 + 字符串處理、圖論變形、邏輯推理題 |
Problem 1: Find the Damaged Toy
Problem
At a birthday party, N kids (numbered from 1 to N) are sitting in a circle. The host has T toys and starts distributing them one at a time, beginning with the kid with ID D, and continuing clockwise. After reaching kid N, the count wraps around to kid 1.
You are to find out which kid will get the last (damaged) toy.
Input
N: Total number of kidsT: Number of toysD: Starting ID of the kid
Output
The ID of the kid who receives the last toy (damaged one).
Example
Input: N = 5, T = 2, D = 1
Output: 2
Explanation
- First toy → Kid 1
- Second toy → Kid 2 (this is the damaged one)
Problem 2: Encode or Decode Message
Problem
You are given a message (string) and a key (positive integer). Your task is to either encode or decode the message based on a given operation type:
- 1 = Encode: For each character, repeat it
key[i]times (cyclically). - 2 = Decode: Compress repeated characters based on the digits of the key (cyclically). If the pattern doesn’t match the key, return
-1.
Input
- Operation type:
1(Encode) or2(Decode) - Message (string)
- Key (positive integer)
Output
Transformed string, or -1 for invalid decoding.
Examples
Input: operation = 1, message = "Open", key = 123
Output: "Oppeen"
Input: operation = 2, message = "Oppeen", key = 123
Output: "Open"
Notes
- If the key is shorter than the message, repeat the key cyclically.
- For decoding, if the actual repeats don’t match the expected key digits, return
-1.
Problem 3: Minimum Moves in a Maze
Problem
There is an n × m maze (grid), where:
0= Empty cell1= Obstacle
You are at (0, 0) and want to reach (n − 1, m − 1). You can move in four directions (up, down, left, right), and in one move, jump 1 to k steps in that direction only if all the jumped-over cells are 0.
Function Signature
def getMinimumMoves(maze: List[List[int]], k: int) -> int
Output
Return the minimum number of moves needed to reach the end, or -1 if impossible.
Examples
Input: maze = [[0,1],[1,0]], k = 2
Output: 2
Input: maze = [[0,0,0],[1,0,0],[1,0,0]], k = 5
Output: 2
Input: maze = [[0,1,0],[1,0,0],[1,0,0]], k = 5
Output: -1
Constraints
1 ≤ n, m ≤ 1001 ≤ k ≤ 100- Maze contains only
0or1
總結建議 + 白嫖技巧
準備建議
- 刷題方向明確:GS 偏好考細節處理能力,建議重點練 LeetCode 高頻中等題 + 數學/邏輯題;
- 口頭表達不能少:OA 雖然不是 VO,但 HackerRank 有錄屏 + 麥克風監控,建議適當訓練思路表達;
- 英文審題能力要練:部分題幹文字不簡潔,建議考前多刷“語義不清”的 LeetCode 英文原題。
Programhelp 實力護航|從 OA 到終面,我們全程陪跑
Goldman Sachs 的 OA 不僅考察你對算法和邏輯的理解,更強調時間管理和多題並行思維的能力。很多同學明明刷了很多題,到了正式考試還是緊張到腦袋一片空白。而這,正是 Programhelp 能幫上大忙的地方。
我們不只是單純講題——而是在你面對高壓 OA 或線上面試時,用無痕遠程協助 + 實時語音提醒,真正解決“做不出來”或“沒時間做完”的難題。
多平台熟練操作,包括 HackerRank、Codility、CodeSignal、Karat 等
我們已經幫助超過 3000 位同學順利通關 OA,斬獲包括 Goldman Sachs、JP Morgan、Citadel、Two Sigma 在內的 offer。如果你也在準備投行或科技公司的筆試,歡迎私信我們了解詳細服務方案。