diff --git a/src/main/java/io/takima/Yatzy.java b/src/main/java/io/takima/Yatzy.java
index c75cead7b12229cd72134bf474a7b7c6086a74ed..6150c2f13fb5f252d38b69af382881bc09e02cd1 100644
--- a/src/main/java/io/takima/Yatzy.java
+++ b/src/main/java/io/takima/Yatzy.java
@@ -6,6 +6,7 @@ import java.util.stream.IntStream;
 
 public final class Yatzy {
     private static final List<Integer> SMALL_STRAIGHT = IntStream.range(1, 6).boxed().toList();
+    private static final List<Integer> LARGE_STRAIGHT = IntStream.range(2, 7).boxed().toList();
 
     private Yatzy() {
         // This his a utility class which only implements static methods
@@ -94,19 +95,9 @@ public final class Yatzy {
         return 0;
     }
 
-    public static int largeStraight(int d1, int d2, int d3, int d4, int d5) {
-        int[] counts;
-        counts = new int[6];
-        counts[d1 - 1] += 1;
-        counts[d2 - 1] += 1;
-        counts[d3 - 1] += 1;
-        counts[d4 - 1] += 1;
-        counts[d5 - 1] += 1;
-        if (counts[1] == 1 &&
-            counts[2] == 1 &&
-            counts[3] == 1 &&
-            counts[4] == 1
-            && counts[5] == 1) {
+    public static int largeStraight(Roll roll) {
+        List<Integer> sortedRoll = roll.toStream().sorted().boxed().toList();
+        if (sortedRoll.equals(LARGE_STRAIGHT)) {
             return 20;
         }
         return 0;
diff --git a/src/test/java/io/takima/YatzyTest.java b/src/test/java/io/takima/YatzyTest.java
index 2a741e1c401675fbc3b25ea3073541ba794e8b6d..45b0ff70aad72846431351969dc1dd923de6c81c 100644
--- a/src/test/java/io/takima/YatzyTest.java
+++ b/src/test/java/io/takima/YatzyTest.java
@@ -151,16 +151,16 @@ class YatzyTest {
     @Test
     void largeStraightShouldReturnTwentyIfDicesAreFromTwoToSix() {
         assertAll(
-            () -> assertEquals(20, Yatzy.largeStraight(6, 2, 3, 4, 5)),
-            () -> assertEquals(20, Yatzy.largeStraight(2, 3, 4, 5, 6))
+            () -> assertEquals(20, Yatzy.largeStraight(roll(6, 2, 3, 4, 5))),
+            () -> assertEquals(20, Yatzy.largeStraight(roll(2, 3, 4, 5, 6)))
         );
     }
 
     @Test
     void largeStraightShouldReturnZeroIfDicesAreNotFromTwoToSix() {
         assertAll(
-            () -> assertEquals(0, Yatzy.largeStraight(1, 2, 2, 4, 5)),
-            () -> assertEquals(0, Yatzy.largeStraight(2, 4, 6, 5, 1))
+            () -> assertEquals(0, Yatzy.largeStraight(roll(1, 2, 2, 4, 5))),
+            () -> assertEquals(0, Yatzy.largeStraight(roll(2, 4, 6, 5, 1)))
         );
     }