From c7e4d2d03080900e1a14b38ca0d17e78e741ba33 Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 19 Dec 2024 17:11:57 +0900 Subject: [PATCH 1/6] Paragon0107 218 solution --- valid-anagram/paragon0107_218.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 valid-anagram/paragon0107_218.java diff --git a/valid-anagram/paragon0107_218.java b/valid-anagram/paragon0107_218.java new file mode 100644 index 000000000..cdddbadc3 --- /dev/null +++ b/valid-anagram/paragon0107_218.java @@ -0,0 +1,11 @@ +import java.util.Arrays; + +class Solution { + public static boolean isAnagram(String s, String t) { + char[] s1 = s.toCharArray(); + char[] s2 = t.toCharArray(); + Arrays.sort(s1); + Arrays.sort(s2); + return Arrays.equals(s1, s2); + } +} \ No newline at end of file From e101f27c31aa2c83e389728f840b76f6c4930115 Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 19 Dec 2024 18:00:07 +0900 Subject: [PATCH 2/6] Paragon0107 230 solution --- climbing-stairs/paragon0107_230.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 climbing-stairs/paragon0107_230.java diff --git a/climbing-stairs/paragon0107_230.java b/climbing-stairs/paragon0107_230.java new file mode 100644 index 000000000..4e3a24a6a --- /dev/null +++ b/climbing-stairs/paragon0107_230.java @@ -0,0 +1,11 @@ +class Solution { + public int climbStairs(int n) { + int[] dp = new int[n + 1]; + dp[1] = 1; + dp[2] = 2; + for(int i=3;i<=n;i++){ + dp[i] = dp[i - 2] + dp[i - 1]; + } + return dp[n]; + } +} From b366ad758fec5c72b658309692483a864edaf97c Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 19 Dec 2024 18:11:41 +0900 Subject: [PATCH 3/6] Paragon0107 230 solution --- climbing-stairs/paragon0107_230.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/climbing-stairs/paragon0107_230.java b/climbing-stairs/paragon0107_230.java index 4e3a24a6a..0fbd59dd4 100644 --- a/climbing-stairs/paragon0107_230.java +++ b/climbing-stairs/paragon0107_230.java @@ -1,3 +1,11 @@ +/* +* +* 시간 복잡도: +* 바텀업 형식으로 배열을 훑으며 올라가기 때문에 O(N) +* 공간 복잡도: +* 자연수 마다 해당하는 방법의 갯수를 저장하기 때문에 O(N) +* +* */ class Solution { public int climbStairs(int n) { int[] dp = new int[n + 1]; From a220ed786697d00d442031b46821281833e5242c Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 19 Dec 2024 18:11:48 +0900 Subject: [PATCH 4/6] Paragon0107 218 solution --- valid-anagram/paragon0107_218.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/valid-anagram/paragon0107_218.java b/valid-anagram/paragon0107_218.java index cdddbadc3..5ff5c60b1 100644 --- a/valid-anagram/paragon0107_218.java +++ b/valid-anagram/paragon0107_218.java @@ -1,5 +1,12 @@ import java.util.Arrays; - +/* +* 시간 복잡도: +* toCharArray는 O(1)의 복잡도를 갖고 ArraySor의 경우 평균O(nlogn), 최악O(n^2)를 갖음(코테시 몇으로 계산하고 진행해야 할 지는 잘 모르겠네요..) +* 공간 복잡도: +* s와t를 사용해서 그대로 배열로 만들기 때문에 O(n) +* +* +* */ class Solution { public static boolean isAnagram(String s, String t) { char[] s1 = s.toCharArray(); From 629c125fdc24979b813ff533fab38e1afa1a41ee Mon Sep 17 00:00:00 2001 From: paragon0107 Date: Thu, 19 Dec 2024 18:17:41 +0900 Subject: [PATCH 5/6] Paragon0107 218 solution --- valid-anagram/paragon0107_218.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/valid-anagram/paragon0107_218.java b/valid-anagram/paragon0107_218.java index 5ff5c60b1..47916654c 100644 --- a/valid-anagram/paragon0107_218.java +++ b/valid-anagram/paragon0107_218.java @@ -15,4 +15,4 @@ public static boolean isAnagram(String s, String t) { Arrays.sort(s2); return Arrays.equals(s1, s2); } -} \ No newline at end of file +} From c10be0d89d6927fd60f88498e2ccd16c779d2d0e Mon Sep 17 00:00:00 2001 From: smg0725 Date: Sat, 21 Dec 2024 17:25:12 +0900 Subject: [PATCH 6/6] paragon0107 s3sum --- 3sum/paragon0107.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 3sum/paragon0107.java diff --git a/3sum/paragon0107.java b/3sum/paragon0107.java new file mode 100644 index 000000000..fde5a8a25 --- /dev/null +++ b/3sum/paragon0107.java @@ -0,0 +1,28 @@ +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +class Solution { + public List> threeSum(int[] nums) { + Set> set = new HashSet<>(); + Arrays.sort(nums); + for (int i = 0; i < nums.length-2; i++) { + int start = i + 1; + int end = nums.length - 1; + while (start < end) { + int sum = nums[i] + nums[start] + nums[end]; + if (sum < 0 ) { + start++; + } else if (sum > 0) { + end--; + }else { + set.add(Arrays.asList(nums[i], nums[start], nums[end])); + start++; + end--; + } + } + } + return set.stream().toList(); + } +}