diff options
| author | Archargelod <archargelod@gmail.com> | 2024-04-07 22:49:46 +0800 |
|---|---|---|
| committer | Archargelod <archargelod@gmail.com> | 2024-04-07 22:49:46 +0800 |
| commit | f0a59983d7ca27d1303de7ace94007491afc60a2 (patch) | |
| tree | ee7050d14b0af506b084c67490b2ae05cb921e20 /challenge-050/archargelod | |
| parent | 0495c7534995083a63370f8e93d3834bbe1f054d (diff) | |
| download | perlweeklychallenge-club-f0a59983d7ca27d1303de7ace94007491afc60a2.tar.gz perlweeklychallenge-club-f0a59983d7ca27d1303de7ace94007491afc60a2.tar.bz2 perlweeklychallenge-club-f0a59983d7ca27d1303de7ace94007491afc60a2.zip | |
weeks 49-52, 263 in Nim
Diffstat (limited to 'challenge-050/archargelod')
| -rw-r--r-- | challenge-050/archargelod/README | 1 | ||||
| -rwxr-xr-x | challenge-050/archargelod/nim/ch_1.nim | 23 | ||||
| -rwxr-xr-x | challenge-050/archargelod/nim/ch_2.nim | 22 |
3 files changed, 46 insertions, 0 deletions
diff --git a/challenge-050/archargelod/README b/challenge-050/archargelod/README new file mode 100644 index 0000000000..6cd57e1074 --- /dev/null +++ b/challenge-050/archargelod/README @@ -0,0 +1 @@ +Solution by archargelod diff --git a/challenge-050/archargelod/nim/ch_1.nim b/challenge-050/archargelod/nim/ch_1.nim new file mode 100755 index 0000000000..439b04cf27 --- /dev/null +++ b/challenge-050/archargelod/nim/ch_1.nim @@ -0,0 +1,23 @@ +#!/usr/bin/env -S nim r -d:release --verbosity:0 --hints:off +import std/algorithm + +proc merge*(intervals: openarray[HSlice[int, int]]): seq[HSlice[int, int]] = + var intervals = intervals.sortedByIt(it.a) + + result.add intervals[0] + for interval in intervals.toOpenArray(1, intervals.high): + if interval.a <= result[^1].b: + result[^1].b = interval.b + else: + result.add interval + +when isMainModule: + import std/unittest + + const + Test = [2..7, 3..9, 10..12, 15..19, 18..22] + Expected = [2..9, 10..12, 15..22] + + suite "Merge Intervals": + test "Example 1": + check merge(Test) == Expected diff --git a/challenge-050/archargelod/nim/ch_2.nim b/challenge-050/archargelod/nim/ch_2.nim new file mode 100755 index 0000000000..37525108db --- /dev/null +++ b/challenge-050/archargelod/nim/ch_2.nim @@ -0,0 +1,22 @@ +#!/usr/bin/env -S nim r -d:release --verbosity:0 --hints:off +import std/[algorithm, options] + +proc findNoble*(numbers: openArray[int]): Option[int] = + let numbers = numbers.sorted() + for i in 1..numbers.len: + let num = numbers[^i] + if num == i - 1: + return some(num) + none(int) + + +when isMainModule: + import std/unittest + + const + Test = [2, 1, 6, 3] + Expected = 2 + + suite "Noble Integer": + test "Example 1": + check findNoble(Test).get == Expected |
