From 78dcd51e6f31d6475280f3d5ca4a802776d17184 Mon Sep 17 00:00:00 2001 From: SinnoLn Date: Tue, 29 Sep 2026 22:30:11 +0900 Subject: [PATCH 1/2] 413. Arithmetic Slices --- .../413. Arithmetic Slices.java" | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 "leetcode3/\354\235\264\354\247\204\355\235\254/413. Arithmetic Slices.java" diff --git "a/leetcode3/\354\235\264\354\247\204\355\235\254/413. Arithmetic Slices.java" "b/leetcode3/\354\235\264\354\247\204\355\235\254/413. Arithmetic Slices.java" new file mode 100644 index 00000000..8c837ecf --- /dev/null +++ "b/leetcode3/\354\235\264\354\247\204\355\235\254/413. Arithmetic Slices.java" @@ -0,0 +1,45 @@ +/* + +1. 아이디어 : 등차수열의 모든 부분배열을 구하므로, 각 원소를 차례대로 완전탐색하며 3개 이상의 원소가 차이가 같은지 확인 + 같을 경우, 미리 구해둔 경우의 수로 계산해준다. + +2. 시간복잡도 : O(2N) + +3. 자료구조/알고리즘 : 누적합, 완전탐색 + + */ + +class Solution { + public int numberOfArithmeticSlices(int[] nums) { + // 모든 등차수열 구하기 + // 최소 3개의 원소 + + // 1 2 3 5 7 10 13 17 21 25 + + if(nums.length < 3) return 0; + + int ans = 0; + int cnt = 2; + int diff = nums[1] - nums[0]; + + int[] sum = new int[nums.length+1]; + for(int i=3; i<=nums.length; i++) { + sum[i] = sum[i-1] + (i-2); + } + + for(int i=2; i 2) { + ans+=sum[cnt]; + } + + return ans; + } +} \ No newline at end of file From f28bb6145d5f79f89d2e5e9502537e17f1196b9d Mon Sep 17 00:00:00 2001 From: SinnoLn Date: Tue, 29 Sep 2026 22:31:23 +0900 Subject: [PATCH 2/2] 242. Valid Anagram --- .../242. Valid Anagram.java" | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 "leetcode3/\354\235\264\354\247\204\355\235\254/242. Valid Anagram.java" diff --git "a/leetcode3/\354\235\264\354\247\204\355\235\254/242. Valid Anagram.java" "b/leetcode3/\354\235\264\354\247\204\355\235\254/242. Valid Anagram.java" new file mode 100644 index 00000000..1d9c51fc --- /dev/null +++ "b/leetcode3/\354\235\264\354\247\204\355\235\254/242. Valid Anagram.java" @@ -0,0 +1,33 @@ +/* + +1. 아이디어 : + 두 문자열 원소의 개수가 같은지 구하기 + 카운팅 배열을 사용한다. + +2. 시간복잡도 : O(N+26) => O(N) + +3. 자료구조/알고리즘 : 완전탐색 + + */ + +class Solution { + public boolean isAnagram(String s, String t) { + int len = s.length(); + + if(s.length() != t.length()) return false; + + int[] sCnt = new int[26]; + int[] tCnt = new int[26]; + + for(int i=0; i