DEV Community

Cover image for Snowflake 2026 OA Experience – 120 Minutes, 3 Mid+ Problems
net programhelp
net programhelp

Posted on

Snowflake 2026 OA Experience – 120 Minutes, 3 Mid+ Problems

Recently completed the Snowflake 2026 Online Assessment. Format: 120 minutes, 3 problems. Difficulty: consistently mid+ to hard. No warm-up, no “free points”. Core focus: modeling ability, DP design, and optimization thinking.

If you move slightly slower than expected, time pressure becomes very real. This OA is less about syntax and more about whether you can recognize the underlying model fast.


1️⃣ String Patterns

Problem Summary

Given a string length wordLen, with at most maxVowels consecutive vowels allowed, count the number of valid strings. Return result modulo 1e9+7.

Core Model: Dynamic Programming

Define state:

dp[i][j] = number of strings of length i 
           ending with j consecutive vowels

Transition logic:

  • If adding a consonant → consecutive vowel count resets to 0
  • If adding a vowel → j increases by 1 (must ensure j ≤ maxVowels)

Final answer:

sum(dp[wordLen][j]) for all valid j

This is a classic constrained counting DP. The tricky part isn’t coding — it’s defining the state correctly. If your state design is off, you’ll burn 20+ minutes debugging transitions.


2️⃣ Paint the Ceiling

Problem Summary

Generate an array of side lengths using a formula. Choose two sides (x ≤ y) such that:

x * y ≤ a

Count the number of valid pairs.

Core Model: Two Pointers

After sorting:

  • If S[left] * S[right] ≤ a → current left contributes (right - left + 1) pairs
  • Else → move right pointer left

Key pitfalls:

  • Brute force O(n²) will time out
  • Multiplication overflow handling
  • Careful boundary movement

This one tests whether you recognize a monotonic structure quickly.


3️⃣ Task Scheduling

This is the most modeling-heavy problem in the entire set.

Key Insight

Assigning a task to a paid server effectively covers:

time[i] + 1 tasks

So the problem becomes:

0/1 Knapsack – Minimum Cost Coverage

dp[j] = minimum cost to cover j tasks

Item value  = time[i] + 1
Item cost   = cost[i]

Goal:

min(dp[j]) where j ≥ n

This is not a typical “maximize value” knapsack — it’s a minimum-cost coverage variant. If you don’t reframe it properly, it’s easy to go down the wrong path.


Overall Evaluation

  • No easy entry problem
  • Strong emphasis on modeling
  • Time pressure is real
  • Optimization thinking required

If you mainly practice standard pattern questions, this OA will feel noticeably harder. It rewards structural recognition over brute implementation.


Preparing for Top Tech OA Rounds

We continuously track real OA and VO structures across major tech companies, analyze pattern frequency, and simulate full-length timed environments.

If you want access to structured prep and OA assistance, feel free to reach out. Strong preparation makes timing pressure manageable — and that’s often the real difference maker.

Top comments (0)