diff --git a/ts/2015/1/problem.ts b/ts/2015/1/problem.ts
new file mode 100644
index 0000000..6408746
--- /dev/null
+++ b/ts/2015/1/problem.ts
@@ -0,0 +1,20 @@
+const input = await Deno.readFile("../data/2015/1/input.txt");
+
+let floor = 0;
+for (let c of input) {
+  const paren = String.fromCharCode(c);
+  if (paren == '(') floor++;
+    else if (paren == ')') floor--;
+}
+console.log(`Part 1: ${floor}`);
+
+floor = 0;
+let steps = 0;
+for (let c of input) {
+  const paren = String.fromCharCode(c);
+  if (paren == '(') floor++;
+    else if (paren == ')') floor--;
+  steps++;
+  if (floor < 0) break;
+}
+console.log(`Part 2: ${steps}`);
diff --git a/ts/bin/run b/ts/bin/run
new file mode 100755
index 0000000..79c82d8
--- /dev/null
+++ b/ts/bin/run
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+year=$1
+day=$2
+
+time ~/.deno/bin/deno run --allow-read $year/$day/problem.ts