aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConor Hoekstra <codereport@outlook.com>2023-07-31 11:18:59 -0400
committerConor Hoekstra <codereport@outlook.com>2023-07-31 11:18:59 -0400
commitf99ae8edc964cc79f9462b53d2b614f14b0f5829 (patch)
treefa6acd69308ad9776fabec8285255c9d304b7184
parente511966ce2280dbedb2c916d9e6254708800639e (diff)
downloadperlweeklychallenge-club-f99ae8edc964cc79f9462b53d2b614f14b0f5829.tar.gz
perlweeklychallenge-club-f99ae8edc964cc79f9462b53d2b614f14b0f5829.tar.bz2
perlweeklychallenge-club-f99ae8edc964cc79f9462b53d2b614f14b0f5829.zip
Week 228P1 in Python, Rust, BQN & APL
-rw-r--r--challenge-228/conor-hoekstra/ch-01.apl7
-rw-r--r--challenge-228/conor-hoekstra/ch-01.bqn6
-rw-r--r--challenge-228/conor-hoekstra/ch-01.py7
-rw-r--r--challenge-228/conor-hoekstra/ch-01.rs14
4 files changed, 34 insertions, 0 deletions
diff --git a/challenge-228/conor-hoekstra/ch-01.apl b/challenge-228/conor-hoekstra/ch-01.apl
new file mode 100644
index 0000000000..a7bc25997d
--- /dev/null
+++ b/challenge-228/conor-hoekstra/ch-01.apl
@@ -0,0 +1,7 @@
+UniqueSum ← +/(∪×1=(+⌿⊢∘.=∪))
+
+⍝ Tests
+
+UniqueSum 2 1 3 2 ⍝ 4
+UniqueSum 1 1 1 1 ⍝ 0
+UniqueSum 1 2 3 4 ⍝ 10
diff --git a/challenge-228/conor-hoekstra/ch-01.bqn b/challenge-228/conor-hoekstra/ch-01.bqn
new file mode 100644
index 0000000000..060ee089ec
--- /dev/null
+++ b/challenge-228/conor-hoekstra/ch-01.bqn
@@ -0,0 +1,6 @@
+UniqueSum ← +´⍷×1=·+˝=⌜⟜⍷
+
+# Tests
+UniqueSum 2‿1‿3‿2 # 4
+UniqueSum 1‿1‿1‿1 # 0
+UniqueSum 1‿2‿3‿4 # 10
diff --git a/challenge-228/conor-hoekstra/ch-01.py b/challenge-228/conor-hoekstra/ch-01.py
new file mode 100644
index 0000000000..28b58a09e6
--- /dev/null
+++ b/challenge-228/conor-hoekstra/ch-01.py
@@ -0,0 +1,7 @@
+def unique_sum(nums):
+ return sum(k for k,v in Counter(nums).items() if v == 1)
+
+# Tests
+unique_sum([2,1,3,2]) # 4
+unique_sum([1,1,1,1]) # 0
+unique_sum([2,1,3,4]) # 10
diff --git a/challenge-228/conor-hoekstra/ch-01.rs b/challenge-228/conor-hoekstra/ch-01.rs
new file mode 100644
index 0000000000..be2eb5b2c2
--- /dev/null
+++ b/challenge-228/conor-hoekstra/ch-01.rs
@@ -0,0 +1,14 @@
+fn unique_sum(nums: Vec<i32>) -> i32 {
+ nums.iter()
+ .counts()
+ .iter()
+ .map(|(k, v)| if v == &1 { k } else { &0 })
+ .sum()
+}
+
+// Tests
+fn main() {
+ println!("{}", unique_sum(vec![2, 1, 3, 2])); // 4
+ println!("{}", unique_sum(vec![1, 1, 1, 1])); // 0
+ println!("{}", unique_sum(vec![2, 1, 3, 4])); // 10
+}