Daily Sudoku — 30 June 2026
The puzzle
| 7 | · | 3 | · | 8 | · | · | 5 | · |
| 9 | · | · | · | · | · | · | 8 | 1 |
| · | 8 | · | 9 | · | · | · | 2 | · |
| 8 | · | 4 | · | 3 | · | 2 | · | · |
| · | · | · | 2 | · | 7 | · | · | · |
| · | · | 7 | · | 6 | · | · | 3 | · |
| · | · | · | 6 | · | 8 | · | · | 5 |
| 6 | 9 | · | · | 7 | · | · | 4 | 2 |
| 3 | · | · | · | · | 2 | · | 9 | · |
| 7 | 2 | 3 | 4 | 8 | 1 | 9 | 5 | 6 |
| 9 | 5 | 6 | 7 | 2 | 3 | 4 | 8 | 1 |
| 4 | 8 | 1 | 9 | 5 | 6 | 7 | 2 | 3 |
| 8 | 6 | 4 | 5 | 3 | 9 | 2 | 1 | 7 |
| 5 | 3 | 9 | 2 | 1 | 7 | 8 | 6 | 4 |
| 2 | 1 | 7 | 8 | 6 | 4 | 5 | 3 | 9 |
| 1 | 4 | 2 | 6 | 9 | 8 | 3 | 7 | 5 |
| 6 | 9 | 8 | 3 | 7 | 5 | 1 | 4 | 2 |
| 3 | 7 | 5 | 1 | 4 | 2 | 6 | 9 | 8 |
Solve it in the app to get on the board
Step-by-step solution
Every cell below is filled by the same hint engine the app uses, in the order it can be deduced — 51 steps using 7 techniques.
Techniques used
- Hidden Single — inside one row, column or box this digit fits in only one cell, so it must go there
- Locked Candidates (pointing/claiming) — a digit inside a box is confined to one row or column, so it is eliminated from the rest of that row or column
- Naked Single — every other digit is already used in this cell's row, column or box, so only one candidate is left
- W-Wing — two cells with the same pair, linked by a strong link, guarantee one of them is a; a is eliminated from cells seeing both
- Finned X-Wing — an X-Wing with one extra cell (the fin) confined to a box; the digit is eliminated only where the pattern and the fin both see it
- XY-Wing — a pivot with two pincers guarantees one digit lands in one of the pincers, so it is eliminated from any cell that sees both
- Skyscraper — two columns (or rows) each hold a digit in exactly two places with their feet aligned; at least one roof holds the digit, so it is eliminated from cells that see both roofs
- R2C5 = 2 · Hidden SingleIn the top-centre 3×3 box, 2 fits in only one cell. Looking at the other empty cells:- Because column 4 already has a 2, R1C4 and R2C4 cannot hold 2.- Because column 6 already has a 2, R1C6 and R2C6 cannot hold 2.- Because row 3 already has a 2, R3C5 and R3C6 cannot hold 2.So 2 must go in R2C5.
- R1C2 = 2 · Hidden SingleIn the top-left 3×3 box, 2 fits in only one cell. Looking at the other empty cells:- Because row 2 already has a 2, R2C2 and R2C3 cannot hold 2.- Because row 3 already has a 2, R3C1 and R3C3 cannot hold 2.So 2 must go in R1C2.
- R2C4 = 7 · Hidden SingleIn the top-centre 3×3 box, 7 fits in only one cell. Looking at the other empty cells:- Because row 1 already has a 7, R1C4 and R1C6 cannot hold 7.- Because column 6 already has a 7, R2C6 and R3C6 cannot hold 7.- Because column 5 already has a 7, R3C5 cannot hold 7.So 7 must go in R2C4.
- R6C1 = 2 · Hidden SingleIn the middle-left 3×3 box, 2 fits in only one cell. Looking at the other empty cells:- Because row 4 already has a 2, R4C2 cannot hold 2.- Because row 5 already has a 2, R5C1, R5C2 and R5C3 cannot hold 2.- Because column 2 already has a 2, R6C2 cannot hold 2.So 2 must go in R6C1.
- R5C2 = 3 · Hidden SingleIn the middle-left 3×3 box, 3 fits in only one cell. Looking at the other empty cells:- Because row 4 already has a 3, R4C2 cannot hold 3.- Because column 1 already has a 3, R5C1 cannot hold 3.- Because column 3 already has a 3, R5C3 cannot hold 3.- Because row 6 already has a 3, R6C2 cannot hold 3.So 3 must go in R5C2.
- R5C3 = 9 · Hidden SingleIn the middle-left 3×3 box, 9 fits in only one cell. Looking at the other empty cells:- Because column 2 already has a 9, R4C2 and R6C2 cannot hold 9.- Because column 1 already has a 9, R5C1 cannot hold 9.So 9 must go in R5C3.
- R4C2 = 6 · Hidden SingleIn the middle-left 3×3 box, 6 fits in only one cell. Looking at the other empty cells:- Because column 1 already has a 6, R5C1 cannot hold 6.- Because row 6 already has a 6, R6C2 cannot hold 6.So 6 must go in R4C2.
- R6C4 = 8 · Hidden SingleIn the centre 3×3 box, 8 fits in only one cell. Looking at the other empty cells:- Because row 4 already has a 8, R4C4 and R4C6 cannot hold 8.- Because column 5 already has a 8, R5C5 cannot hold 8.- Because column 6 already has a 8, R6C6 cannot hold 8.So 8 must go in R6C4.
- R7C3 = 2 · Hidden SingleIn the bottom-left 3×3 box, 2 fits in only one cell. Looking at the other empty cells:- Because column 1 already has a 2, R7C1 cannot hold 2.- Because column 2 already has a 2, R7C2 cannot hold 2.- Because row 8 already has a 2, R8C3 cannot hold 2.- Because row 9 already has a 2, R9C2 and R9C3 cannot hold 2.So 2 must go in R7C3.
- R7C5 = 9 · Hidden SingleIn the bottom-centre 3×3 box, 9 fits in only one cell. Looking at the other empty cells:- Because row 8 already has a 9, R8C4 and R8C6 cannot hold 9.- Because row 9 already has a 9, R9C4 and R9C5 cannot hold 9.So 9 must go in R7C5.
- R7C7 = 3 · Hidden SingleIn row 7, 3 fits in only one cell. Looking at the other empty cells:- Because column 1 already has a 3, R7C1 cannot hold 3.- Because column 2 already has a 3, R7C2 cannot hold 3.- Because column 8 already has a 3, R7C8 cannot hold 3.So 3 must go in R7C7.
- R3C9 = 3 · Hidden SingleIn the top-right 3×3 box, 3 fits in only one cell. Looking at the other empty cells:- Because row 1 already has a 3, R1C7 and R1C9 cannot hold 3.- Because column 7 already has a 3, R2C7 and R3C7 cannot hold 3.So 3 must go in R3C9.
- R2C6 = 3 · Hidden SingleIn the top-centre 3×3 box, 3 fits in only one cell. Looking at the other empty cells:- Because row 1 already has a 3, R1C4 and R1C6 cannot hold 3.- Because row 3 already has a 3, R3C5 and R3C6 cannot hold 3.So 3 must go in R2C6.
- R3C7 = 7 · Hidden SingleIn the top-right 3×3 box, 7 fits in only one cell. Looking at the other empty cells:- Because row 1 already has a 7, R1C7 and R1C9 cannot hold 7.- Because row 2 already has a 7, R2C7 cannot hold 7.So 7 must go in R3C7.
- R8C4 = 3 · Hidden SingleIn the bottom-centre 3×3 box, 3 fits in only one cell. Looking at the other empty cells:- Because column 6 already has a 3, R8C6 cannot hold 3.- Because row 9 already has a 3, R9C4 and R9C5 cannot hold 3.So 3 must go in R8C4.
- R5C8 = 6 · Hidden SingleIn column 8, 6 fits in only one cell. Looking at the other empty cells:- Because row 4 already has a 6, R4C8 cannot hold 6.- Because row 7 already has a 6, R7C8 cannot hold 6.So 6 must go in R5C8.
- R5C1 = 5 · Hidden SingleStep 1 · Pick a digit and a box, and find where it can goThe top-centre 3×3 box has no 5 yet; 5 can only go in R3C5 and R3C6.Step 2 · Places on one row: point along it (pointing)All of them lie on row 3, so the box's 5 is on row 3. The rest of row 3 loses 5: R3C1 and R3C3.Step 3 · Collect what the eliminations unlockIn column 1, 5 has one place left, R5C1 (lost 5: R3C1 in step 2) → place 5 in R5C1.
- R6C2 = 1 · Naked SingleLooking at R6C2:- Row 6 already has 2, 3, 6, 7 and 8 → ruled out.- Column 2 already has 9 → ruled out.- The middle-left 3×3 box already has 4 and 5 → ruled out.So this cell can only be 1.
- R6C7 = 5 · Hidden SingleIn the middle-right 3×3 box, 5 fits in only one cell. Looking at the other empty cells:- Because column 8 already has a 5, R4C8 cannot hold 5.- Because column 9 already has a 5, R4C9 and R6C9 cannot hold 5.- Because row 5 already has a 5, R5C7 and R5C9 cannot hold 5.So 5 must go in R6C7.
- R1C7 = 9 · Hidden SingleIn column 7, 9 fits in only one cell. Looking at the other empty cells:- Because row 2 already has a 9, R2C7 cannot hold 9.- Because row 5 already has a 9, R5C7 cannot hold 9.- Because row 8 already has a 9, R8C7 cannot hold 9.- Because row 9 already has a 9, R9C7 cannot hold 9.So 9 must go in R1C7.
- R4C4 = 5 · Hidden SingleStep 1 · Find two cells with the same pair that do not see each otherR4C4 and R8C6 both hold only {1, 5} and share no row, column or box: they are the pincers.Step 2 · Find a strong link on one of the two digitsIn row 1, 1 has only two places, R1C4 and R1C6; R1C4 sees R4C4 and R1C6 sees R8C6.Step 3 · Follow the link: one pincer must be 5If R4C4 is not 5 it is 1, so R1C4 is not 1, so R1C6 is 1, so R8C6 is not 1 — it is 5. Either R4C4 or R8C6 is 5.Step 4 · Remove 5 from every cell that sees both pincersThe cells that see both pincers lose 5: R4C6 and R9C4.Step 5 · Collect what the elimination unlocksIn the centre 3×3 box, 5 has one place left, R4C4 (lost 5: R4C6 in step 4) → place 5 in R4C4.
- R5C5 = 1 · Hidden SingleStep 1 · Pick a digit and a box, and find where it can goThe top-left 3×3 box has no 1 yet; 1 can only go in R3C1 and R3C3.Step 2 · Places on one row: point along it (pointing)All of them lie on row 3, so the box's 1 is on row 3. The rest of row 3 loses 1: R3C5 and R3C6.Step 3 · Pick a digit and a box, and find where it can goThe top-centre 3×3 box has no 5 yet; 5 can only go in R3C5 and R3C6.Step 4 · Places on one row: point along it (pointing)All of them lie on row 3, so the box's 5 is on row 3. The rest of row 3 loses 5: R3C3.Step 5 · Spot an X-Wing spoiled by an extra placeRow 6 has 4 only in columns 6 and 9. Row 1 has 4 in both of them too, plus R1C4.Step 6 · Check that the fin shares a box with a cornerThe fin R1C4 is in the top-centre 3×3 box, with the corner R1C6.Step 7 · Reason in two cases: the fin holds the digit, or the X-Wing is realIf no fin is 4, the X-Wing is real and 4 leaves R3C6 and R5C9. If a fin is 4, the rest of the top-centre 3×3 box loses 4: R1C6, R3C5 and R3C6.Step 8 · Remove the digit only where both cases agreeThe cells on both lists lose 4: R3C6.Step 9 · Find a cell with exactly two candidatesPivot: R3C6 holds only {5, 6}.Step 10 · Find two pincers that share the same ZR3C3 {1, 6} and R8C6 {1, 5} see the pivot and each hold one of its digits; their other digit is 1, so Z = 1.Step 11 · Follow both cases: one pincer is always ZIf the pivot is 6, R3C3 is 1; if it is 5, R8C6 is 1.Step 12 · Remove Z from every cell that sees both pincersThe cells that see both pincers lose 1: R8C3.Step 13 · Find a row where the digit has only two placesRow 5 has only two places for 1: R5C5 and R5C7.Step 14 · Find a second such row whose end shares a column with the firstRow 8 has only two places for 1: R8C6 and R8C7. The base cells R5C7 and R8C7 share column 7; the roofs are R5C5 and R8C6.Step 15 · Remove the digit from every cell that sees both roofsThe two base cells cannot both be 1, so at least one roof is. Every cell that sees both roofs loses 1: R4C6 and R9C5.Step 16 · Collect what the elimination unlocksIn the centre 3×3 box, 1 has one place left, R5C5 (lost 1: R4C6 in step 15) → place 1 in R5C5.
- R6C6 = 4 · Hidden SingleIn the centre 3×3 box, 4 fits in only one cell. Looking at the other empty cells:- Because row 4 already has a 4, R4C6 cannot hold 4.So 4 must go in R6C6.
- R6C9 = 9 · Naked SingleLooking at R6C9:- Row 6 already has 1, 2, 3, 4, 5, 6, 7 and 8 → ruled out.So this cell can only be 9.
- R4C6 = 9 · Naked SingleLooking at R4C6:- Row 4 already has 2, 3, 4, 5, 6 and 8 → ruled out.- Column 6 already has 7 → ruled out.- The centre 3×3 box already has 1 → ruled out.So this cell can only be 9.
- R4C8 = 1 · Hidden SingleIn the middle-right 3×3 box, 1 fits in only one cell. Looking at the other empty cells:- Because column 9 already has a 1, R4C9 cannot hold 1.- Because row 5 already has a 1, R5C7 and R5C9 cannot hold 1.So 1 must go in R4C8.
- R4C9 = 7 · Naked SingleLooking at R4C9:- Row 4 already has 1, 2, 3, 4, 5, 6, 8 and 9 → ruled out.So this cell can only be 7.
- R7C8 = 7 · Naked SingleLooking at R7C8:- Row 7 already has 2, 3, 5, 6, 8 and 9 → ruled out.- Column 8 already has 1 and 4 → ruled out.So this cell can only be 7.
- R9C2 = 7 · Hidden SingleIn the bottom-left 3×3 box, 7 fits in only one cell. Looking at the other empty cells:- Because row 7 already has a 7, R7C1 and R7C2 cannot hold 7.- Because row 8 already has a 7, R8C3 cannot hold 7.- Because column 3 already has a 7, R9C3 cannot hold 7.So 7 must go in R9C2.
- R7C1 = 1 · Hidden SingleIn row 7, 1 fits in only one cell. Looking at the other empty cells:- Because column 2 already has a 1, R7C2 cannot hold 1.So 1 must go in R7C1.
- R7C2 = 4 · Naked SingleLooking at R7C2:- Row 7 already has 1, 2, 3, 5, 6, 7, 8 and 9 → ruled out.So this cell can only be 4.
- R3C1 = 4 · Naked SingleLooking at R3C1:- Row 3 already has 2, 3, 7, 8 and 9 → ruled out.- Column 1 already has 1, 5 and 6 → ruled out.So this cell can only be 4.
- R2C2 = 5 · Naked SingleLooking at R2C2:- Row 2 already has 1, 2, 3, 7, 8 and 9 → ruled out.- Column 2 already has 4 and 6 → ruled out.So this cell can only be 5.
- R3C3 = 1 · Hidden SingleIn the top-left 3×3 box, 1 fits in only one cell. Looking at the other empty cells:- Because row 2 already has a 1, R2C3 cannot hold 1.So 1 must go in R3C3.
- R2C3 = 6 · Naked SingleLooking at R2C3:- Row 2 already has 1, 2, 3, 5, 7, 8 and 9 → ruled out.- Column 3 already has 4 → ruled out.So this cell can only be 6.
- R2C7 = 4 · Naked SingleLooking at R2C7:- Row 2 already has 1, 2, 3, 5, 6, 7, 8 and 9 → ruled out.So this cell can only be 4.
- R1C9 = 6 · Naked SingleLooking at R1C9:- Row 1 already has 2, 3, 5, 7, 8 and 9 → ruled out.- Column 9 already has 1 → ruled out.- The top-right 3×3 box already has 4 → ruled out.So this cell can only be 6.
- R1C4 = 4 · Hidden SingleIn the top-centre 3×3 box, 4 fits in only one cell. Looking at the other empty cells:- Because column 6 already has a 4, R1C6 cannot hold 4.- Because row 3 already has a 4, R3C5 and R3C6 cannot hold 4.So 4 must go in R1C4.
- R1C6 = 1 · Naked SingleLooking at R1C6:- Row 1 already has 2, 3, 4, 5, 6, 7, 8 and 9 → ruled out.So this cell can only be 1.
- R9C4 = 1 · Naked SingleLooking at R9C4:- Row 9 already has 2, 3, 7 and 9 → ruled out.- Column 4 already has 4, 5, 6 and 8 → ruled out.So this cell can only be 1.
- R3C6 = 6 · Hidden SingleIn the top-centre 3×3 box, 6 fits in only one cell. Looking at the other empty cells:- Because column 5 already has a 6, R3C5 cannot hold 6.So 6 must go in R3C6.
- R3C5 = 5 · Naked SingleLooking at R3C5:- Row 3 already has 1, 2, 3, 4, 6, 7, 8 and 9 → ruled out.So this cell can only be 5.
- R9C5 = 4 · Naked SingleLooking at R9C5:- Row 9 already has 1, 2, 3, 7 and 9 → ruled out.- Column 5 already has 5, 6 and 8 → ruled out.So this cell can only be 4.
- R8C6 = 5 · Naked SingleLooking at R8C6:- Row 8 already has 2, 3, 4, 6, 7 and 9 → ruled out.- Column 6 already has 1 and 8 → ruled out.So this cell can only be 5.
- R5C9 = 4 · Hidden SingleIn the middle-right 3×3 box, 4 fits in only one cell. Looking at the other empty cells:- Because column 7 already has a 4, R5C7 cannot hold 4.So 4 must go in R5C9.
- R5C7 = 8 · Naked SingleLooking at R5C7:- Row 5 already has 1, 2, 3, 4, 5, 6, 7 and 9 → ruled out.So this cell can only be 8.
- R9C9 = 8 · Naked SingleLooking at R9C9:- Row 9 already has 1, 2, 3, 4, 7 and 9 → ruled out.- Column 9 already has 5 and 6 → ruled out.So this cell can only be 8.
- R9C3 = 5 · Hidden SingleIn the bottom-left 3×3 box, 5 fits in only one cell. Looking at the other empty cells:- Because row 8 already has a 5, R8C3 cannot hold 5.So 5 must go in R9C3.
- R9C7 = 6 · Naked SingleLooking at R9C7:- Row 9 already has 1, 2, 3, 4, 5, 7, 8 and 9 → ruled out.So this cell can only be 6.
- R8C3 = 8 · Naked SingleLooking at R8C3:- Row 8 already has 2, 3, 4, 5, 6, 7 and 9 → ruled out.- Column 3 already has 1 → ruled out.So this cell can only be 8.
- R8C7 = 1 · Naked SingleLooking at R8C7:- Row 8 already has 2, 3, 4, 5, 6, 7, 8 and 9 → ruled out.So this cell can only be 1.
First to finish
Ranked by when each player finished, not by how long they took — so looking up a solution never moves anyone up this board.
Open the app to see who finished first.