Skip to content

Commit 6f67db0

Browse files
committed
feat(day22): cut 3
1 parent e4ee675 commit 6f67db0

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

day22/cardshuffle.spec.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
import { dealIntoNewStack } from './cardshuffle'
1+
import { dealIntoNewStack, cut } from './cardshuffle'
2+
3+
const testDeck = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
24

35
describe('Card Shuffle', () => {
46
test('deal 10 cards into a new deck', () => {
5-
expect(dealIntoNewStack([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])).toEqual([
7+
expect(dealIntoNewStack([...testDeck])).toEqual([
68
9,
79
8,
810
7,
@@ -15,4 +17,7 @@ describe('Card Shuffle', () => {
1517
0,
1618
])
1719
})
20+
test('cut 3', () => {
21+
expect(cut(3)([...testDeck])).toEqual([3, 4, 5, 6, 7, 8, 9, 0, 1, 2])
22+
})
1823
})

day22/cardshuffle.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
export const dealIntoNewStack = (deck: number[]): number[] => [
2-
...deck.reverse(),
1+
type Deck = number[]
2+
3+
export const dealIntoNewStack = (deck: Deck): Deck => [...deck.reverse()]
4+
5+
export const cut = (n: number) => (deck: Deck): Deck => [
6+
...deck.slice(n),
7+
...deck.slice(0, n),
38
]

0 commit comments

Comments
 (0)